#include <stdio.h>
#include<math.h>
#pragma warning(disable:4996)
#define _CRT_SECURE_NO_WARNINGS
int main()
{
int a, b;
char c;
scanf("%d%d", &a,&b);
scanf("%c", &c);
switch (c)
{
case ' + ':printf("%d", a + b); break;
case '-': printf("%d", a - b); break;
case '*': printf("%d", a * b); break;
case '/':
{
if (b == 0) printf("Divided by zero!");
else printf("%d", a / b);
}
default: printf("error!");
}
你输入的参数不对,你直接给1 2+。
如果你输入a,b后,按回车键再输入c,那么在scanf("%c",&c)前面要加一句getchar()
否则c接收的不是你输入的操作符,而是换行键
你的代码我看没问题啊?
#include <stdio.h>
#include<math.h>
#pragma warning(disable:4996)
#define _CRT_SECURE_NO_WARNINGS
int main()
{
int a, b;
char c;
scanf("%d%c%d", &a,&c,&b);
switch (c)
{
case ' + ':printf("%d", a + b); break;
case '-': printf("%d", a - b); break;
case '*': printf("%d", a * b); break;
case '/':
{
if (b == 0) printf("Divided by zero!");
else printf("%d", a / b);
}
default: printf("error!");
}
看下你怎么输入的
#include <stdio.h>
#include<math.h>
#pragma warning(disable:4996)
#define _CRT_SECURE_NO_WARNINGS
int main()
{
int a, b;
char c;
scanf("%d%d%c", &a,&b,&c);
switch(c)
{
case '+':printf("%d", a + b); break;
case '-': printf("%d", a - b); break;
case '*': printf("%d", a * b); break;
case '/':
{
if (b == 0) printf("Divided by zero!");
else printf("%d", a / b);
}
default: printf("error!");
}
}