C语言程序编译成功了,执行时候 输入数字后回车 程序自动关掉了

#define PI 3.1416
main()
{
int Radius, Area;
printf("输入 Radius=");
scanf(" % f", &Radius);
Area = PI * Radius * Radius;
printf( "Area=% f\n", Area);
}
编译完成后,生产的Area.exe 。输入半径后 回车程序怎么自动关掉了。

因为程序执行完毕退出了,界面被windows关掉了~ 所以你看到的现象是程序自动关掉。
以下3种方法可以让你直接在屏幕上看到运行结果,避免程序直接退出而看不到输出信息:
1.在cmd命令行里面运行你的程序。
2.在程序main函数return之前加入两个getchar();函数调用
3.在程序main函数return之前加上一行system( "PAUSE ");追问

输入system( "PAUSE "); 是没关掉了。。。可是最后结果怎么都是0.000000 啊 = =

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-07-26
程序末尾的printf后面再加一句getchar();就可以保持不关掉了

而且你的scanf引号中不要使用多余的字符,包括空格
而且你的printf 中的%f 对应的是float类型,而您定义的是int类型,所以计算不出结果
程序改成
#define PI 3.1416
int main()
{
float Radius, Area=0;
printf("输入 Radius=");
scanf("%f", &Radius);
Area = PI * Radius * Radius;
printf( "Area=%f\n", Area);
getchar();

return 0;
}
试试
希望对您有帮助追问

你这个 还是自动关了。。

追答

呵呵,那您后面加上:
system( "PAUSE ");

试试,为什么得不到答案我已近给你解答了,类型用的不对,把我给你的代码后面加上system( "PAUSE ");试试

本回答被提问者采纳
第2个回答  推荐于2018-04-10
加个中断函数在printf函数后面

system("pause");
getchar();
getch();本回答被网友采纳
第3个回答  2012-07-26
scanf("%f"), &Radius); %后面不要留空格
然后在程序程序头最好有#include <stdio.h>
程序末尾的printf后面再加一句getchar();就可以保持不关掉了

system("PAUSE");不是个好方法, 不要用追问

为什么不是好办法啊? 用getchar() 也有用。。
可我不管输入什么数字。。出来的都是0.000000 ..。 这是为什么啊

追答

因为你声明的时候Radius是int, 改成float就好了

追问

改了 。。。。现在又自动关了。。

第4个回答  2012-07-26
#include<stdio.h>
#define PI 3.1416
main()
{
double Radius, Area; //最好用double类型
printf("输入 Radius=");
scanf("%lf", &Radius); //%f改为%lf
Area = PI*Radius*Radius;
printf( "Area=%lf\n", Area); //%f改为%lf
int 类型会吧小数省略
}
相似回答