无法执行scanf?????/
发表于 : 2016-07-01 17:21
我用c写了一个简单的计算器,第28行scanf不能正常执行,以下是代码,请问怎么回事?谢谢
(用goto的目的是希望计算完之后询问用户是否进行第二次运算,还是退出)
#include<stdio.h>
#include<ctype.h>
int main(void)
{
char linn;
head1:
{char symbol;
float num1,num2,result,yushu;
printf("please input a 算式\n");
scanf("%f %c %f",&num1,&symbol,&num2);
if(symbol=='+'||symbol=='-'||symbol=='*'||symbol=='/')
switch (symbol)
{
case '+':
result=num1+num2;break;
case '-':
result=num1-num2;break;
case '*':
result=num1*num2;break;
case '/':
{result=num1/num2;break;}
}
else
printf("you have input a wrong symbol\n");
printf("%f\n",result);}
printf("if you want to calculate again please input y or Y\n"
"if you do not want,please input n or N\n");
scanf("%c",&linn); //就是这个scanf无发执行!!!!!
if(tolower(linn)=='y')
goto head1;
else if(tolower(linn)=='n')
printf("goodbye......\n");
}
(用goto的目的是希望计算完之后询问用户是否进行第二次运算,还是退出)
#include<stdio.h>
#include<ctype.h>
int main(void)
{
char linn;
head1:
{char symbol;
float num1,num2,result,yushu;
printf("please input a 算式\n");
scanf("%f %c %f",&num1,&symbol,&num2);
if(symbol=='+'||symbol=='-'||symbol=='*'||symbol=='/')
switch (symbol)
{
case '+':
result=num1+num2;break;
case '-':
result=num1-num2;break;
case '*':
result=num1*num2;break;
case '/':
{result=num1/num2;break;}
}
else
printf("you have input a wrong symbol\n");
printf("%f\n",result);}
printf("if you want to calculate again please input y or Y\n"
"if you do not want,please input n or N\n");
scanf("%c",&linn); //就是这个scanf无发执行!!!!!
if(tolower(linn)=='y')
goto head1;
else if(tolower(linn)=='n')
printf("goodbye......\n");
}