switch中的变量是一个char类型,所以每一个case 分支应该都是一个单字符,不能用双引号,更不能用汉字!
此外循环的逻辑也存在问题,只有第一次输入是正确的,后面的输入都会被认为是出错,所以需要重新检查下循环和switch中的分支。
#include
void main ()
{
int i=0,c,sum,a[1000];
char b[1000];
while(1)
{
scanf("%d%c",&a[i],&b[i]);
i++;
if(b[i-1]=='=')
{
c=i-1;
break;
}
}
sum = a[0];
for(i=0;i
printf("%d%c",a[i],b[i]);
switch (b[i])
{
case '+':
sum+=a[i+1];
break;
case '-':
sum-=a[i+1];
break;
case '*':
sum*=a[i+1];
break;
case '/':
sum/=a[i+1];
break;
deafult :
break;
}
} printf("%d%c",a[c],b[c]);
printf("%d",sum);
}
这是用c写的一段计算器代码,你可以看一下
case "平方":
case "求余":
case "结束":
case "根号":
与 a 没有办毛钱关系呀