这是我的代码,但在输入输入后,每次都会发出默认声明。请帮助。我是C的初学者。 它没有给出结果。
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
int a;
int b;
char op;
printf ("Enter first number: ");
scanf ("%d", & a );
printf ("Enter second number: ");
scanf ("%d", & b );
printf ("Enter the operator: ");
scanf ("%s", op );
switch(op)
{
case '+' :
printf("Sum is %d", a+b );
break;
case '-' :
printf("Difference is %d", a-b );
break;
case '*' :
printf("Product is %d", a*b );
break;
case '/' :
printf("Quotient is %d", a/b );
break;
default :
printf("Wrong operator used!");
break;
}
return 0;
}
答案 0 :(得分:2)
此:
scanf ("%s", op );
是未定义的行为,op
是char
但%s
需要char *
(并且如果您希望实际存储,则需要多char
个空间你不需要的字符串。
你的意思是:
scanf(" %c", &op); // Note the space before '%', this matters.
也总是检查返回值,I / O可能会失败。