首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

简单的C程序,崩溃原因

2012-08-30 
【求助】简单的C程序,崩溃原因?#includestdio.hint main(){printf(请输入英寸\n)float ifloat cscanf

【求助】简单的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()的用法,这些都是基础知识

另外,要学会自己看编译器给出的错误信息

这样才能更快的进步

热点排行