欢迎来到小洪老师的课堂,这里将会对国庆布置的作业做一个详细解析
题目要求:
输入三个整数,比较三个整数的大小,并按照从大到小的顺序输出
样例输入:12 89 20
样例输出:89 20 12
在这里通过题目我们要学习几个要点:
1.样例输入和样例输出是题目给的测试数据,是用来测试我们编写的代码对不对,不是直接写到我们的代码中去,例如int a=12,这是错误的写法
2.输入三个整数,按照顺序输出,这意味着这是一个交互性的程序,我们需要用cin读入,cout输出,切记
3.输入时,看样例中,三个数据是分开输入的,中间用空格隔开,也就是我们运行代码后,在命令行(运行出来的黑色窗口)通过键盘输入三个数据,输入的时候是要写空格的
题目思路:
比较三个数的大小,就要先定义三个数为a,b,c(变量名可以自己取)
我们先设定 a 最大,b第二,c最小
那么不满足我们的设定条件的,就进行数据交换
不满足 的一共有三种情况
第一,比较 a 和 b 的大小,如果 b>a 就交换 a 和 b 的值
第二,比较 a 和 c 的大小,如果 c>a 就交换 a 和 c 的值
第三,比较 b 和 c 的大小,如果 c>b 就交换 a 和 b 的值
这样做完之后,就能保证: a 最大,b第二,c最小
分步解法:
步骤1:
定义变量
设定三个数为 a,b,c
三个数都是整数,所以这里用 int 进行定义
int a,b,c;
在定义的时候,如果是相同的类型,中间可以用逗号隔开
步骤2:
数据读入
数据读入采用 cin>>函数
因为要读入三个数据,分别为 a,b,c
所以直接用读入符号(>>)做分隔即可
cin>>a>>b>>c;
步骤3:
数值交换
通常来讲会使用到一个中间变量 temp (注:temp的意思是暂时)
我们使用中间变量 temp 进行暂时储存数值
比如说我们要交换 a 和 b 的值:可以先将 a 的值给 temp
再将 b 的值给 a
此时:temp里面存的就是 a 原本的值,a里面存的就是 b 原本的值
最后再将 temp 的值给 b,这样 b里面存的就是 a 原本的值
这样就完成了 a 和 b 值的交换
temp=a;
a=b;
b=temp
步骤4:
数据输出
题目要求输出三个整数,中间以空格隔开
而空格属于字符,要用单引号' '
每种数据中间用输出符号(>>)做分隔即可
源码:
#include<bits/stdc++.h>
using namespace std;
int main(){
//定义
int a,b,c;
//读入
cin>>a>>b>>c;
//中间变量
int temp;
if(a<b){ //如果b比a大,就交换
temp=a;
a=b;
b=temp;
}
if(a<c){ //如果c比a大,就交换
temp=c;
c=a;
a=temp;
}
if(b<c){ //如果c比b大,就交换
temp=b;
b=c;
c=temp;
}
//输出
cout<<a<<' '<<b<<' '<<endl;
}
题目要求:
月用电量在 150 千瓦时及以下部分按每千瓦时 0.4463 元执行;月用电量在 151∼400千瓦时的部分按每千瓦时 0.4663元执行;月用电量在 401千瓦时及以上部分按每千瓦时 0.5663 元执行。
请编写一个程序,已知用电总计,根据电价规定,计算出应交的电费应该是多少
样例输入:267
样例输出:121.5
几个要点不再阐述,有问题的看上一题
洛谷链接:P1422 小玉家的电费 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
题目思路:
非常经典的分段思想
这里就只做举例:
如果用电量为420瓦,这420瓦中——
150瓦以0.4463计费,
250瓦以0.4663计费,
20瓦以0.5663计费,
数学列式为:150*0.4463+250*0.4663+20*0.5663
如果上面的思路没问题,下面的代码也就没问题了
源码:
#include<bits/stdc++.h>
using namespace std;
int main(){
//定义
int a;
//输入
cin>>a;
float ans;
if(a<=150&&a>=0) ans=a*0.4463;
if(a>=151&&a<=400) ans=150*0.4463+(a-150)*0.4663;
if(a>400) ans=150*0.4463+(400-150)*0.4663+(a-400)*0.5663;
//输出
printf("%.1f",ans);
}
有问题请评论区留言,or 微信私信我