编写计算圆周长与面积的C语言程序运行失败,求排查解决
问题原因及修复方案
你的代码计算逻辑本身没有错误,无法正常运行的核心问题是main函数的写法不符合现代C语言标准,此外还有一处可选优化和拼写小问题:
- 标准C要求
main函数必须返回int类型,你使用的void main是早年部分编译器支持的非标准写法,现在的GCC、Clang、MSVC等主流编译器都会直接拒绝编译这类代码,只要修改函数定义为int main(),并在函数末尾增加return 0;即可解决编译报错问题。 - 部分控制台运行环境下,输入提示不会立刻打印出来,会直接卡住等待输入,只需要在打印输入提示的
printf语句后加一行fflush(stdout);强制刷新输出缓冲区即可解决。 - 输出语句里的周长单词拼写有误,
circonferance应为circumference,该问题不影响程序运行,仅会导致输出的提示文字拼写错误。
修正后完整代码
#include <stdio.h> int main() { float radius = 0.0f; float circu = 0.0f; float area = 0.0f; const float PI = 3.14159f; // 增加const修饰更规范,PI为常量不会被修改 printf("Input the radius of the circle:"); fflush(stdout); // 可选,解决部分环境下输入提示不提前显示的问题 scanf("%f", &radius); circu = 2.0f * PI * radius; area = PI * radius * radius; printf("\nThe circumference is %f", circu); printf("\nThe area is %f", area); return 0; }
如果你使用的是极其老旧的Turbo C这类DOS环境下的编译器,也可以保留void main的写法,其他部分无需修改也能正常运行。
内容的提问来源于stack exchange,提问作者Mister-3
相关产品推荐
相关产品推荐

