我研究了这个错误,但一直没能找到.另外,我对此还是个新手.我想学习C语言的基础知识,下面是我的第一个程序.我想修改函数calc
中的sum
,这样它就是float
,以防有人除以例如2/5
.
#include <stdio.h>
int getNumber1() {
int myNumber1;
printf("\n gib eine Zahl ein: ");
scanf("%d", &myNumber1);
return myNumber1;
}
int getNumber2() {
int myNumber2;
printf("\n gib eine weitere Zahl ein: ");
scanf("%d", &myNumber2);
return myNumber2;
}
char getOp() {
char myOp;
printf("\n gib einen Operanten ein: ");
scanf(" %c", &myOp);
return myOp;
}
void calc(int number1, int number2, char op) {
if (op == '+') {
int sum = number1 + number2;
printf("\n\n%d %c %d = %d", number1, op, number2, sum);
}
if (op == '-') {
int sum = number1 - number2;
printf("\n\n%d %c %d = %d", number1, op, number2, sum);
}
if (op == '*') {
int sum = number1 * number2;
printf("\n\n%d %c %d = %d", number1, op, number2, sum);
}
if (op == '/') {
float sum = number1 / number2;
printf("\n\n%d %c %d = %.2f", number1, op, number2, sum);
}
}
int main() {
int cont = 1;
while (cont == 1) {
int number1 = getNumber1();
int number2 = getNumber2();
char op = getOp();
calc(number1, number2, op);
printf("\nMoechten Sie weitere Berechnungen durchfuehren? (1 fuer Ja, 0 fuer Nein): ");
scanf("%d", &cont);
}
printf("\nDanke und auf Wiedersehen.");
return 0;
}
但我得到的错误是conversion to float from int may alter its value
.为什么会这样?我怎样才能解决这个错误?