为什么我的圆信息计算C代码运行报错(未定义错误)?
圆计算程序错误分析与修复方案
- 赋值运算符误用:代码里多处把
=(赋值运算符)写成了==(相等比较运算符),比如pi == (3.14);这行只是在判断pi是否等于3.14,根本没给pi赋值,导致pi、area、circumference都是未初始化的垃圾值,触发未定义行为。必须把所有==替换成=。 - 变量类型不合理:
circumference和area被定义为int整数类型,但圆的面积、周长计算结果是浮点数,用整数存储会直接截断小数部分,丢失精度。得把这两个变量改成float类型。 - 格式符不匹配:
printf里用%d(整数格式符)输出浮点数变量,会导致输出结果错乱。要换成%f,如果想保留两位小数更直观,可用%.2f。 - 字符串换行不规范:
printf的字符串直接换行不符合C标准写法,应使用\n表示换行,避免编译警告或错误。
修复后的完整代码:
#include <stdio.h> float pi; int radius; float circumference; float area; int main() { printf("What radius is your circle?\n"); scanf("%d", &radius); pi = 3.14; area = radius * radius * pi; circumference = 2 * radius * pi; printf("The area of your circle is %.2f, and the circumference is %.2f\n", area, circumference); return 0; }
内容的提问来源于stack exchange,提问作者Itami
相关产品推荐
相关产品推荐

