這是我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](https://stackoverflow.com/help/mcve)。 – 5gon12eder 2014-12-07 21:27:08