当前位置: 代码迷 >> C语言 >> [求助] 多了个换行就不能正确执行
  详细解决方案

[求助] 多了个换行就不能正确执行

热度:171   发布时间:2006-05-17 22:09:00.0
[求助] 多了个换行就不能正确执行

请各位大侠看看,下面第五行多了个换行的字符程序就不能正确执行,为什么?谢谢!
#include<stdio.h>
void main()
{int s,c;
float f,p,w,d;
scanf("%f,%f,%d\n",&p,&w,&s);
if(s>=3000) c=12;
else c=s/250;
switch(c)
{case 0:d=0;break;
case 1:d=1;break;
case 2:
case 3:d=5;break;
case 4:
case 5:
case 6:
case 7:d=8;break;
case 8:
case 9:
case 10:
case 11:d=10;break;
case 12:d=15;break;
}
f=p*s*w*(1-d/100.0);
printf("freight=%15.4f\n",f);

搜索更多相关的解决方案: include  color  五行  

----------------解决方案--------------------------------------------------------

\n是不能随便用在scanf函数中的


----------------解决方案--------------------------------------------------------
以下是引用xxygdufs在2006-5-17 22:09:00的发言:

请各位大侠看看,下面第五行多了个换行的字符程序就不能正确执行,为什么?谢谢!
#include<stdio.h>
void main() //No '"void main",but "int main(void)"."void main()" can not be accepted in Dev-Cpp.
{int s,c;
float f,p,w,d;
scanf("%f,%f,%d\n",&p,&w,&s); //"scanf" can not recognize '%d\n'.
if(s>=3000) c=12;
else c=s/250;
switch(c)
{case 0:d=0;break;
case 1:d=1;break;
case 2:
case 3:d=5;break;
case 4:
case 5:
case 6:
case 7:d=8;break;
case 8:
case 9:
case 10:
case 11:d=10;break;
case 12:d=15;break;
}
f=p*s*w*(1-d/100.0);
printf("freight=%15.4f\n",f);


----------------解决方案--------------------------------------------------------

以下是引用xxygcufs在2006-5-17 22:09:00的发言:

请各位大侠看看,下面第五行多了个换行的字符程序就不能正确执行,为什么?谢谢!
#incluce<stcio.h>
voic main()
{int s,c;
float f,p,w;
scanf("%f,%f,%c\n",&p,&w,&s);此处的\n为换行,既你在输入p,w,s 后,接着按ENTER为换行而不是你想要的写入。
if(s>=3000) c=12;
else c=s/250;
switch(c)
{case 0:c=0;break;
case 1:c=1;break;
case 2:
case 3:c=5;break;
case 4:
case 5:
case 6:
case 7:c=8;break;
case 8:
case 9:
case 10:
case 11:c=10;break;
case 12:c=15;break;
}
f=p*s*w*(1-c/100.0);
printf("freight=%15.4f\n",f);


----------------解决方案--------------------------------------------------------
自己输入以后,看一下那几个输入的变量。
----------------解决方案--------------------------------------------------------

  相关解决方案