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

C语言运行返回Id returned 1 exit status错误,无法定位问题求助

C语言报错Id returned 1 exit status 排查方案

这个报错是典型的编译/链接阶段失败的提示,你提供的代码存在以下几处错误:

  • 调用了未定义的welcome()函数:main函数开头直接调用了welcome(),但给出的代码中没有该函数的声明或定义,链接阶段找不到函数实现直接触发编译失败。
  • cost函数存在多处逻辑和语法问题:
    • 形参名为wednesday,但函数内部又重新定义了同名局部变量discount,外部传入的参数完全没有被使用,且局部变量discount未初始化就参与条件判断,属于未定义行为。
    • 局部变量price未初始化就直接做减法运算,计算结果完全不可预期,且该函数没有返回值也没有输出逻辑,计算结果无法被外部获取,没有实际作用。
  • main函数返回值不符合C语言标准:标准C规定main函数的返回值为int类型,void main属于老旧的非标准写法,部分编译器会直接报错。

修复后的可运行代码

#include <stdio.h>

// 补全缺失的welcome函数,可根据需求调整内部输出内容
void welcome(){
    printf("Welcome to the settlement system\n");
}

int wednesday(){
  int discount;
  printf("You are lucky on Wednesdays! You can get discount!\n");
  printf("Is today wednesday? Yes = 1  No= 2\n");
  scanf("%d", &discount);
  return discount;
}

// 重构cost函数:传入折扣标记和商品原价,返回结算后的价格
int cost(int discount, int original_price){
  if(discount == 1){
    return original_price - 2;
  }
  return original_price;
}

int main(){
  int discount;
  // 示例原价,可改为用户输入或自定义数值
  int original_price = 10;
  int final_price;
    
  welcome();
  discount = wednesday();
  final_price = cost(discount, original_price);
  printf("Final settlement price: %d\n", final_price);
  return 0;
}

修复说明

  1. 补全了缺失的welcome函数定义,解决了链接阶段找不到函数的问题
  2. 重构了cost函数,直接使用传入的discount参数,删除了无效的重复变量定义,增加原价入参和返回值,可将计算结果返回给main函数使用
  3. 将main函数改为标准int返回类型,补充返回值0,新增了原价设置和最终价格输出逻辑,可直接看到运行结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 06:48:01