C语言编程错误征询

2025-12-13 21:26:02
推荐回答(3个)
回答1:

第一个 ,你那个if写错了 写成If 了
提示少了个分号";",就是因为if 写错了
#include
void main()
{
int x,y;

printf("please input a num x");
scanf("%d",&x);

if(x<1)
{
y=x;
printf("x=%3d, y=x=%d\n",x,y);
}
else if(x<10) //是if不是If
{
y=2*x-1;
printf("x=%3d,y=2*x-1=%d\n",x,y);
}
else
{
y=3*x-11;
printf("x=%3d,y=3*x-11=%d\n",x,y);
}
}
这就没错了。

第二个,你把好几个地方的 score写成scanf了
#include

void main()
{
float score;
char grade;
printf("please input a num score\n");

scanf("%f",&score);

while(score>100||score<0)
{
printf("scanf %d is erroe\n",score);
scanf("%f",&score);
}

switch((int)(score/10))
{
case 10:
case 9: grade='A';break;
case 8: grade='B';break;
case 7: grade='C';break;
case 6: grade='D';break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0: grade='E';
}
printf("\nthe score is %f,grade is %c\n",score,grade); //改成%f
}

试过了,是对的

回答2:

1:你程序有问题 无论输入多少最后只执行最后的一项判断语句,把你多余的{}去掉就好了;还有你定义了 X为整型 你要输入小数怎么办 那他输出的结果就不是你想要的 而会是0,大体给你改下 具体怎么在定义你想下.
#include
main()
{
int x,y;
printf("please input a num x\n");
scanf("%d",&x);
if(x<1) y=x;
else if (x<10) y=2*x-1;
else y=3*x-11;
printf("x=%3d,y=%d\n"x,y);
}

2:while(scanf>100||scanf<0)
{printf("scanf %d is erroe\n",score);
"scanf">>改为score 别的应该没什么错

回答3:

你的上部分,你定义x,y都是整形,你怎么还可以能有小于1的?还有,我如果是0.5,是不是既小于1也小于10啊?两个句子有矛盾了!~至于第2段嘛..不好意思,忘了怎么用了,反正你两段代码都不能循环就是的!