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

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文件

现有代码的逻辑错误修正

你的代码即使配置正确也无法正常输出预期效果,存在以下问题:

  1. 运算符优先级错误:x-1%2 会优先计算1%2再做减法,奇偶判断逻辑完全失效,应该改为(x-1) % 2 == 0
  2. 循环逻辑混乱:红色分支的循环上限、额外多余的printf("* ")会导致每行的星号数量不对
  3. 换行符位置错误:写在了外层循环结束之后,所有星号会打印在同一行
  4. 没必要在内层循环重复调用颜色修改函数,每行设置一次即可

修正后可正常运行的代码如下:

#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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 16:54:05