【求助】简单的C程序,崩溃原因?
#include<stdio.h>
int main()
{
printf("请输入英寸\n");
float i;
float c;
scanf("%f\n",&i);
c=i+(float)2.5;
printf("%f英寸等于%f厘米\n",i,c);
return 0;
}
[解决办法]
scanf("%f\n",&i); -》 scanf("%f",&i);
[解决办法]
#include<stdio.h>
int main()
{
printf("请输入英寸\n");
float i;
float c;
scanf("%f",&i);
c=i+(float)2.5;
printf("%f英寸等于%f厘米\n",i,c);
return 0;
}
把scanf中的\n去掉
[解决办法]
scanf("%f\n",&i); 语句出错。
- C/C++ code
int main(){ printf("请输入英寸\n"); float i; float c; scanf("%f",&i); c=i+(float)2.5; printf("%f英寸等于%f厘米\n",i,c); return 0;}
[解决办法]
\n 是输出控制,不是输入控制,scanf 根本就不认识 \n。
所以不同的编译器的处理都不一样的,对于未定义的行为,没啥好深究的。
[解决办法]
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。
- C/C++ code
#include <stdio.h>int main(){ float i,c; printf("请输入英寸\n"); if (1==scanf("%f",&i)) { c=i*2.54f; printf("%g英寸等于%g厘米\n",i,c); return 0; } else { return 1; }}
[解决办法]
大家都说了,我就说一句:贴代码时,看到编辑框上方有个“#”符号,可以帮助整理代码格式
[解决办法]
再看下scanf()的用法,这些都是基础知识
另外,要学会自己看编译器给出的错误信息
这样才能更快的进步