首页 > 解决方案 > Id 在 C 中返回 1 个退出状态,我找不到我的错误

问题描述

#include <stdio.h>

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;
}

void cost(int wednesday){
  int price;
  int discount;
  if(discount == 1){
    price = price - 2;
  }
  else{
    price = price;
  }
}

void main(){
  int discount;
    
  welcome();
  discount = wednesday();
  cost(discount);
}

我也写了其他代码,但这部分不起作用我找不到我的错误。如果你能帮我找出我的错误,我会非常高兴。

标签: cinitializationfunction-definition

解决方案


main您尝试调用welcome不存在的函数时:

welcome();

删除welcome();或定义上面某处的函数。这将解决您的链接器问题,但您的代码还有其他几个问题:

int discount;
if(discount == 1){

是有问题的。 discount是未初始化的,所以它有一个不确定的值。我想你想要的是

if(wednesday == 1){

这是wednesday您传递给的返回值cost

此外,price也未初始化,所以

price = price - 2;

导致一个不确定的值。您应该初始化price为某个初始值。

int price = 0; // probably not zero, but whatever the initial price should be

最后,删除

else{
  price = price;
}

这是一个无操作,通过设置price等于自身没有任何收获。

您还有一个无效的签名main,请参阅C 的 main() 函数的有效签名是什么?


推荐阅读