首页 > 解决方案 > 在这个计算器程序中,只有零显示为输出

问题描述

#include <stdio.h>
void calculation(int x, int y, int z);
main() {
  calculation(15, 5, 1);
}

void calculation(int x, int y, int z) {

  if (z == 1) {
    printf("%d", add(x, y));
  }
  if (z == 2) {
    printf("%d", mul(x, y));
  }
  if (z == 3) {
    printf("%d", div(x, y));
  }
  if (z == 4) {
    printf("%d", sub(x, y));
  }
}

int mul(int x, int y) {
  x * y;
}

int add(int x, int y) {
  x + y;
}

int div(int x, int y) {
  x / y;
}

int sub(int x, int y) {
  x - y;
}

int gugudan(int x) {
  for (int i = 1; i <= 9; i++) {
    printf("%d*%d=%d\n", x, i, x * i);
  } 
}

这是我想通过将 x 与 y 相乘来运行的代码,该代码来自制作计算器的源代码。我正在尝试打印输出,但即使输入不同,结果仍然显示为零。x,y,z 有什么问题?还是在其他地方错了?

标签: c

解决方案


检查您声明的功能,例如,mul一个。您声明它返回一个int,但在您的函数内部,您没有返回任何内容。

要解决您的问题,您需要返回函数的值,该值应为int.

因此,这里是从函数(即函数)返回值应该执行的操作的片段mul

int mul(int x, int y) {

   return x * y;
 }

因此,您应该在您开发的其他功能上修复此缺失return,并且您的代码应该可以正常工作。


推荐阅读