|
5啊哈币
计算器程序,无法编译,哪里错了!
错误提示:
Error:Id returned 1 exits status -gcc
还有一个问题:我觉得我编的getun函数效率有点低
如果谁有更好的代码贴出来,万分感谢!
[code=Cpp width=740px]
#include <stdio.h>
unsigned long long x=0,y=0;
char op,div=(char)246;
void getnu()
{
while(1)
{
system("cls");
printf("请输入一个算式(支持+,-,*,/):");
unsigned short i,b=1;
char c;
scanf("%c",&c);
if((0>(c-48))||(9<(c-48)))
{
printf("输入错误,重新输入!");
continue;
}
while((c!='+')||(c!='-')||(c!='*')||(c!='/'))
{
if((0>(c-48))||(9<(c-48)))
{
printf("输入错误,重新输入!");
b=0;
break;
}
i=c-48;
x=x*10+i;
scanf("%c",&c);
}
if(!b){b=1; continue;}
op=c;
scanf("%c",&c);
if((0>(c-48))||(9<(c-48)))
{
printf("输入错误,重新输入!");
continue;
}
while((c!='='))
{
if((0>(c-48))||(9<(c-48)))
{
printf("输入错误,重新输入!");
b=0;
break;
}
i=c-48;
y=y*10+i;
scanf("%c",&c);
}
if(!b){b=1; continue;}
}
}
void oper()
{
switch(op)
{
case '+':printf("%lld+%lld=%lld\n",x,y,x+y);
break;
case '-':printf("%lld-%lld=%lld\n",x,y,x-y);
break;
case '*':printf("%lldx%lld=%lld\n",x,y,x*y);
break;
case '/':printf("%lld%c%lld=%lld......%lld\n",x,div,y,x/y,x%y);
break;
}
}
int main()
{
char b;
while(1)
{
getun();
oper();
printf("还想继续使用计算机吗Y/N)");
scanf("%c",b);
if((b='N')||(b='n')) break;
}
system("pause");
return 0;
}[/code]
|
最佳答案
查看完整内容
04 void getnu()
72 getun();
'n'、'u'颠倒了
|