输入格式:两个以空格分开的整数
输出格式:一个整数
代码:
#include
int main(){
int a,b,c;
scanf("%d%d",&a,&b);
c =a + b;
printf("%d\n",c);
return 0;
}
思考:对于这个问题还是比较简单及基础,因为是顺序结构,代码只需要像数学逻辑一样表示出来即可。
P5703:【深基2.例5】苹果采购
代码:
#include
int main() {
int a,b,c;
scanf("%d%d",&a,&b);
c=a * b;
printf("%d\n",c);
return 0;
}
思考:对于这个问题与第一题比较可以发现,一个只是加法,一个只是乘法,思路还是比较容易想出。
P5704:【深基2.例6】字母转换
代码:
#include
int main(){
char c;
scanf("%c",&c);
printf("%c\n",c - 32);
return 0;
}
思考:对于这道题,刚开始是完全没有思路的,因为也是第一次做题,去看了评论区的题解,有得到启发,对于观察在ASCⅡ表可以发现规律:小写字母=大写字母+32,则大写字母=小写字母-32,当得到这个规律以后解这道题就是很轻松的了,有一点小tips需要注意,就是对于变量的定义,在这里应该是char。
P5705【深基2.例7】数字反转
代码1:
#include
int main()
{
int a,b,c,r;
scanf("%d",&r);
a=r/100;
b=r/10%10;//变成十进制,也可以变成二进制(除2取余)
c=r/1%10;
printf("%d",c);
printf("%d",b);
printf("%d",a);
return 0;
}//整数(取余)反转
代码2:
#include
char a,b,c,d;
int main(){
scanf("%c%c%c.%c",&a,&b,&c,&d);
printf("%c.%c%c%C\n",d,c,b,a);
return 0;
}
思考:我对于这个题刚开始也是完全无法下手的,有经过同学的交流得到了一种方法一,取模运算符%,整除后取余数,这个对于题解就是可以相对应的除百位,十位,个位然后取余,这种方法相对与第二种方法,直接表示四个变量,然后位置调换输出即可。
P5706【深基2.例8】再分肥宅水
代码:
#include
int main() {
float t;
int n;
scanf("%f%d",&t,&n);
printf("每个同学可分到%.3lf毫升饮料\n一共需要 %d 个杯子\n",t/n,2*n);
return 0;
思考:对于这道题,刚开始不知道需要如何才可以精确到后几位小数,这是我认为这题中唯一的难点。<精确到小数点后几位: %.几位lf或f>
P1425小鱼的游泳时间
代码:
#include
int main(){
int a,b,c,d,e,f;
scanf("%d%d%d%d",&a,&b,&c,&d);
if(d < b){
f = 60+d-b;
c=c-1;
e=c-a;
}
else {
f=d-b;
e=c-a;
}
printf("%d %d\n",e,f);
return 0;
}
思考:对于这道题,也是很简单的数学问题,只是在其中有需要考虑到当结束分钟数小于开始分钟数时的一种情况,这时候需要小时退位在相减,这就是两种情况,需要考虑;还有一种方法就是直接都换算成分钟计算,这样就不需要考虑哪些,在这里我采用的是第一种。
最后:顺便在这里记录一下自己在编码过程中犯的错误:一直将d-b,写成b-d,就导致在这种方法里相当于没有考虑到第二种情况,所以用题中的例子就一直是正确的,我还不知道改哪里,后来换了个例子才发现自己的错误,提醒自己以后细心一点。