You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么我的圆信息计算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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 21:45:33