目录
[3.04]简单整数求和运算A+B★
错误代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int a,b;
char c='%';
scanf("%d %d",&a,&b);
printf("%d+%d=%d\n",a,b,a+b);
printf("%d-%d=%d\n",a,b,a-b);
printf("%d*%d=%d\n",a,b,a*b);
printf("%d/%d=%d\n",a,b,a/b);
printf("%d%%d=%d\n",a,b,a%b);
return 0;
}
错误原因:
printf函数中,%用于格式控制,如果想输出文本%,需要使用两个百分号,即%%就可以了,也可以将‘%’作为字符输出
解决办法:
定义char c=’%’,输出改为printf("%d%c%d=%d\n",a,c,b,a%b);
正确代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int a,b;
char c='%';
scanf("%d %d",&a,&b);
printf("%d+%d=%d\n",a,b,a+b);
printf("%d-%d=%d\n",a,b,a-b);
printf("%d*%d=%d\n",a,b,a*b);
printf("%d/%d=%d\n",a,b,a/b);
printf("%d%c%d=%d\n",a,c,b,a%b);
return 0;
}
[4.01]printf和scanf
错误代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
int main()
{
int a;
scanf("%d",&a);
printf("x=%d,x=%#o,x=%#x\n",a,a,a);
return 0;
}
原因:
%#o和%#x会输出八进制和十六进制的前缀,该题目要求不输出八进制和十六进制的前缀。
解决办法:
将printf修改printf("x=%d,x=%o,x=%x\n",a,a,a);
正确代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
int main()
{
int a;
scanf("%d",&a);
printf("x=%d,x=%o,x=%x\n",a,a,a);
return 0;
}
[4.10]ACM罚时
不会输入“:”。
解决办法:
通过scanf("%d:%d%d:%d%d",&a1,&a2,&b1,&b2,&n);输入“:”。
正确代码:
#include <stdio.h>
#include <stdlib.h>
int main(){
int a1,a2,b1,b2,n,t;
scanf("%d:%d%d:%d%d",&a1,&a2,&b1,&b2,&n);
t=(b1-a1)*60+(b2-a2)+20*n;
printf("%d\n",t);
return 0;
}
[5.22]体型判断
错误代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
float h,w;
scanf("%f %f",&h,&w);
if(w/(h*h)<18){
printf("%f",w/(h*h));
printf("di");
}
else if(w/(h*h)<=25&&w/(h*h)>=18){
printf("zheng");
}
else if(w/(h*h)<=27&&w/(h*h)>25){
printf("chao");
}
else{
printf("pang");
}
return 0;
}
原因:
将身高和体重的输入顺序弄反了。
解决办法:
将scanf("%f %f",&h,&w);改正过来即可正确运行
正确代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
float h,w;
scanf("%f %f",&w,&h);
if(w/(h*h)<18){
//printf("%f",w/(h*h));
printf("di");
}
else if(w/(h*h)<=25&&w/(h*h)>=18){
printf("zheng");
}
else if(w/(h*h)<=27&&w/(h*h)>25){
printf("chao");
}
else{
printf("pang");
}
return 0;
}
[5.28]绝对值
错误代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
float x;
scanf("%f",&x);
if(x<=0){
printf("%f",-x);
}
else
printf("%f",x);
return 0;
}
原因:
未将x=0考虑进去。
解决办法:
将x=0放入else的条件中。
正确代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
float x;
scanf("%f",&x);
if(x<0){
printf("%f",-x);
}
else
printf("%f",x);
return 0;
}
[6.02]求一个数列的和
错误代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{