#include<stdio.h>
int main()
{
char c1;
printf("货物的运输方式如下表:\n");
printf("选择 a、【货车】: 10 元基本运费,请注意货运的路程不能大于2500Km!;\n");
printf("选择 b、【铁路】:100 元基本运费;\n");
printf("选择 c、【船运】:200 元基本运费;\n");
printf("选择 d、【空运】:400 元基本运费,请注意空运的路程必须大于500Km!。\n");
printf("\n");
for(c1!='a'||c1!='b'||c1!='c1'||c1!='d';;)
{
printf("请选择:");
c1=getchar();
if(c1=='a')
{
printf("已成功选择【货车】\n");
break;
}
else if(c1=='b')
{
printf("已成功选择【铁路】\n");
break;
}
else if(c1=='c')
{
printf("已成功选择【船运】\n");
break;
}
else if(c1=='d')
{
printf("已成功选择【空运】\n");
break;
}
else
printf("无效选择!请重新选择!\n");
}
return 0;
}
12: warning: multi-character character constant [-Wmultichar]
for(c1!='a'||c1!='b'||c1!='c1'||c1!='d';;)
^~~~
首先代码12行写错了。
其次没有退出选择??写了个死循环
这样才是你想表达的意思
for(;c1!='a'||c1!='b'||c1!='c'||c1!='d';)
修改一下你就知道为什么了
printf("无效选择!请重新选择!%c\n",c1);
printf("----\n");
这个时候看一下输入输出(自己问问题要写清楚哪里出问题了以及出问题的记录!!!)
请选择:e
无效选择!请重新选择!e
----
请选择:无效选择!请重新选择!
----
请选择:a
已成功选择【货车】
有没有看出来第二次else多了什么东西????是不是多了换行????
这只有部分代码,就是想问一下为什么输入的不是‘a’‘b’‘c’‘d’时,会直接出现2个“无效选择......”的结果。谢谢回答
醉了,多了换行??get到点了嘛???你输入e真的只是输入了"e"吗????回车哪里来的??????
明白了,那怎么改,刚学C,真不知道