C语言交替彩色行半金字塔实现及Xcode调用colours.c问题咨询
Xcode 多C文件配置方法 + 代码逻辑修正
Xcode 正确关联 colours.c 的操作步骤
- 打开你的Xcode项目,在左侧项目导航栏右键点击项目根目录,选择「Add Files to "你的项目名称"」
- 在弹出的选择窗口中找到存放的colours.c文件,勾选「Copy items if needed」,确认「Add to targets」下的当前运行目标已勾选,点击添加
- 点击顶部运行按钮旁的项目名称进入项目设置页,切换到「Build Phases」标签,展开「Compile Sources」,确认colours.c已在列表中,若不在点击加号手动添加即可
- 配置完成后直接运行项目,Xcode会自动编译链接两个.c文件
现有代码的逻辑错误修正
你的代码即使配置正确也无法正常输出预期效果,存在以下问题:
- 运算符优先级错误:
x-1%2会优先计算1%2再做减法,奇偶判断逻辑完全失效,应该改为(x-1) % 2 == 0 - 循环逻辑混乱:红色分支的循环上限、额外多余的
printf("* ")会导致每行的星号数量不对 - 换行符位置错误:写在了外层循环结束之后,所有星号会打印在同一行
- 没必要在内层循环重复调用颜色修改函数,每行设置一次即可
修正后可正常运行的代码如下:
#include <stdio.h> #include "colours.h" int main() { int x, n, rows; printf("Enter a positive integer: "); scanf("%d", &rows); for (x = 1; x <= rows; ++x) { if((x-1) % 2 == 0) { change_color(RED); } else { change_color(BLUE); } for (n = 1; n <= x; ++n) { printf("* "); } printf("\n"); } // 若colours.h定义了默认颜色宏可以加下面这行,避免后续终端内容被染色,没有可以删掉 // change_color(RESET); return 0; }
内容的提问来源于stack exchange,提问作者user17175931
相关产品推荐
相关产品推荐

