我做了一个计算器,但它没有按预期工作。我究竟做错了什么?
I made a calculator, but it does not work as expected. What am I doing wrong?
#include <stdio.h>
int main() {
int n1,n2 ;
char operator ;
printf("enter the expression");
scanf("%d","%c","%d",&n1,&operator,&n2);
if (operator == '+') {
printf("%d+%d=%d",n1,n2,n1+n2);
} else if (operator == '-') {
printf("%d-%d=%d",n1,n2,n1-n2);
} else if (operator == '*') {
printf("%d*%d=&d",n1,n2,n1*n2);
} else if (operator == '/') {
printf("%d/%d=%d",n1,n2,n1/n2);
} else {
printf("wrong input");
}
return 0;
}
此代码未显示任何错误,但未按预期 运行。输入表达式后,它没有给我输出
您的 scanf
调用不正确。您应该将所有内容放在一个字符串中:
scanf("%d%c%d",&n1, &operator, &n2);
另见 documentation。
我试过了,现在可以用了。
你可以单独做scanf
或者你可以做一个数组(这个选项让你有更多的控制权,但你必须做更多的事情)
#include <stdio.h>
int main() {
int n1,n2 ;
char operator ;
printf("enter the expression");
scanf("%d","%c","%d",&n1,&operator,&n2);
if (operator == '+') {
printf("%d+%d=%d",n1,n2,n1+n2);
} else if (operator == '-') {
printf("%d-%d=%d",n1,n2,n1-n2);
} else if (operator == '*') {
printf("%d*%d=&d",n1,n2,n1*n2);
} else if (operator == '/') {
printf("%d/%d=%d",n1,n2,n1/n2);
} else {
printf("wrong input");
}
return 0;
}
此代码未显示任何错误,但未按预期 运行。输入表达式后,它没有给我输出
您的 scanf
调用不正确。您应该将所有内容放在一个字符串中:
scanf("%d%c%d",&n1, &operator, &n2);
另见 documentation。
我试过了,现在可以用了。
你可以单独做scanf 或者你可以做一个数组(这个选项让你有更多的控制权,但你必须做更多的事情)