Консольная программа C, использующая пользовательский ввод ('+' / '-') для неработающих математических операций - PullRequest
0 голосов
/ 05 октября 2019

Я сделал эту программу, но она не работает.

Вы вводите два числа. Затем вы нажимаете + или -. Если вы нажмете +, он должен добавить цифры. Если нажать - это надо вычесть. Но эта часть не работает.

#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;
}

Что мне делать?

Ответы [ 3 ]

0 голосов
/ 05 октября 2019

Когда вы используете спецификатор преобразования %c, тогда scanf считывает все символы, включая пробелы.

Используйте следующий вызов

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

См. Пробел перед символом '%'и отсутствующий символ '\n'.

0 голосов
/ 05 октября 2019
scanf("%d",&a);
getchar();
0 голосов
/ 05 октября 2019

Просто удалите \ n из этой строки .. scanf ("% c \ n", & opt);Так что это будет ... scanf ("% c", & opt);

...