C++程序显示没有错误,为什么运行显示不出结果?

#include<stdio.h>
void main()
{
int price, y;
printf("input price: \n");
scanf("%d%d",&price, &y);
switch(price/1000){
case 0:{y=200;
printf("%d\n", y);};break;
case 1:{y=200+(price-1000)*10%
printf("%d\n", y);};break;
case 2:{y=300+(price-2000)*15%
printf("%d\n", y);};break;
case 3:{y=300+(price-2000)*15%
printf("%d\n", y);};break;
case 4:{y=600+(price-4000)*20%
printf("%d\n", y);};break;
case 5:{y=600+(price-4000)*20%
printf("%d\n", y);};break;
case 6:{y=600+(price-4000)*20%
printf("%d\n", y);};break;
case 7:{y=600+(price-4000)*20%
printf("%d\n", y);};break;
default:{y=1400+(price-8000)*25%
printf("%d\n", y);};break;
}
}

语法错误。
case 1:{y=200+(price-1000)*10%

最后的% 你认为是百分之10,但是 C是作为 %运算符的
y=200+(price-1000)*10%
printf("%d\n", y);
这句话就变成了一句给y的赋值语句
y=200+(price-1000)*10% printf("%d\n", y);

修改方式,把% 改成 /100,然后后面加上分号。追问

input price:1000
2000,按回车之后还是没有结果

追答

你都改正了错误了没?

#include<stdio.h>
void main()
{
int price, y;
printf("input price: \n");
scanf("%d%d",&price, &y);
switch(price/1000){
case 0:{y=200;
   printf("%d\n", y);};break;
case 1:{y=200+(price-1000)*0.1;
   printf("%d\n", y);};break;
case 2:{y=300+(price-2000)*0.15;
   printf("%d\n", y);};break;
case 3:{y=300+(price-2000)*.15;
   printf("%d\n", y);};break;
case 4:{y=600+(price-4000)*.2;
printf("%d\n", y);};break;
case 5:{y=600+(price-4000)*.2;
   printf("%d\n", y);};break;
case 6:{y=600+(price-4000)*.2;
   printf("%d\n", y);};break;
case 7:{y=600+(price-4000)*.2;
   printf("%d\n", y);};break;
default:{y=1400+(price-8000)*.25;
    printf("%d\n", y);};break;
}
}

你试一试这段代码

输入的时候  用 input price :  1000 空格 2000 回车 试一试

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-11-06
scanf("%d%d",&price, &y);
scanf("%d %d",&price, &y); 两个%d中间加个空格,输入时也输入个空格追问

加了空格,还是运行不出结果~
输出price,要输出y~

追答

1,大括号右边不要加;,这里加了也没什么问题,因为当做一个空语句
2,y = 200 + (price - 1000) * 10 % printf("%d\n", y);这句看不懂,为什么要%一个函数的返回值
3,在return之前加上 system("pause"); 以便查看结果,并且包含头文件#include

相似回答