【发布时间】:2015-02-05 12:27:13
【问题描述】:
这是我的main.c:
#include<stdio.h>
#include<stdlib.h>
int main() {
printHeadline();
function1();
int i;
for (i = 0; i < 1000; i++) {
menu();
if (menu() == 1) {
return 0;
} else if (menu() == 2) {
int p1 = 1, p2 = 2;
ReadNumbers(&p1, &p2);
} else if (menu() == 3) {
int p1 = 1, p2 = 2;
add(&p1, &p2);
} else if (menu() == 4) {
int p1 = 1, p2 = 2;
subtract(&p1, &p2);
} else if (menu() == 5) {
int p1 = 1, p2 = 2;
divide(&p1, &p2);
} else if (menu() == 6) {
int p1 = 1, p2 = 2;
multiply(&p1, &p2);
}
}
}
这是我的functions.c:
#include <stdio.h>
#include <stdlib.h>
int add(int x1, int x2) {
return x1 + x2;
}
int subtract(int x1, int x2) {
return x1 - x2;
}
float divide(int x1, int x2) {
return x1 / x2;
}
int multiply(int x1, int x2) {
return x1 * x2;
}
void ReadNumbers(int *p1, int *p2) {
int x1;
int x2;
printf("Integer 1:");
scanf("%d", &x1);
printf("Integer 2:");
scanf("%d", &x2);
*p1 = x1;
*p2 = x2;
}
int menu() {
int i;
for (i = 0; i < 10; ++i) {
printf("\n\nChoose from menu:\n1. Exit\n2. Read two numbers\n3. Add\n4. Subtract\n5. Divide\n6. Multiply\n\nYour choice: ");
scanf("%d", &menu);
if (menu == 1 || menu == 2 || menu == 3 || menu == 4 || menu == 5 || menu == 6)
return menu;
else
++i;
fflush(stdin);
}
}
目前在菜单中选择数字时程序崩溃。我尝试调试,它指向这一行:
scanf("%d", &menu);
不知道该去哪里或下一步该做什么。我尝试了很多东西,但我对 C 比较陌生。
【问题讨论】:
-
请尝试将您的代码缩减为MCVE。
标签: c function return return-value scanf