使用用户输入('+'/'-')进行数学运算的C控制台程序

问题描述 投票:-1回答:5

我制作了此程序,但是它不起作用。

您输入两个数字。然后按+或-。如果按+,则应加上数字。如果按-应该减去。但是那部分不起作用。

#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
char opt;       
int a,b,s;      
scanf("%d",&a);
scanf("%c\n",&opt);  
scanf("%d",&b); 
if(opt=='+') {           //this part doesnt work
s=a+b;
}
else if(opt=='-') {
s=a-b;
}
printf("%d",s);
 return 0;
}

我该怎么办?

c if-statement scanf
5个回答
0
投票
scanf("%d",&a);
getchar();

0
投票

此代码对我来说很完美!


-1
投票

只需从此行中删除\ n。scanf(“%c \ n”,&opt);所以会...scanf(“%c”,&opt);


-1
投票

[当使用转换说明符%c时,scanf读取所有字符,包括空格。

使用以下电话

scanf( " %c", &opt );
        ^^^ 

请参见'%'符号前的空格和缺少的'\n'符号。


-1
投票

您的代码工作正常,要查看结果,请在return 0;之前的代码末尾添加这两行:

printf("\n Press enter to continue...\n");
getchar();
return 0;

并且当前您正在获得这样的输入,第一个数字和运算符紧随其后,在第一行然后在第二行第二个数字,这里是一个示例:

5-
2
3                                                                                                                                   
Press enter to continue...     

然后您看到3作为结果

如果需要在新行中输入每个输入,请将您的第一个scanf更改为:

scanf("%d\n",&a);

© www.soinside.com 2019 - 2024. All rights reserved.