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

我的Objective-C代码输出错误的圆面积,请求排查问题

代码问题分析及修复

问题1:宏定义PI存在语法错误

你定义的#define PI 3.142fat是无效的浮点数写法,末尾多了at字符,正确的单精度浮点数后缀应为f,需改为#define PI 3.142f。这个错误会导致编译器无法正确识别PI的数值,直接破坏面积计算的基础逻辑。

问题2:NSLog格式化符使用错误

NSLog(@"Area is %d", area);中,%d是用于格式化整数的占位符,但area是float类型的浮点数,应该使用浮点数对应的格式化符,比如%f(输出完整浮点数)或者%.3f(保留三位小数,匹配你预期的12.568)。用%d格式化浮点数会导致内存解析错误,输出无意义的整数。

修复后的完整代码

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    
    // constant
    #define PI 3.142f
    float area;
    int r=2;
    area = PI * (r*r);
    NSLog(@"Area is %.3f", area);
    
    [pool drain];
    return 0;
}

修复后输出

运行修复后的代码,会输出:

2023-xx-xx xx:xx:xx.xxxx main[xx:xx] Area is 12.568

内容的提问来源于stack exchange,提问作者eyitayoit

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 00:32:12