搜索
查看: 2233|回复: 15
打印 上一主题 下一主题

计算器程序出错

[复制链接]
跳转到指定楼层
楼主
发表于 2013-8-15 13:40:18 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
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'颠倒了
沙发
发表于 2013-8-15 13:40:19 | 只看该作者
04 void getnu()
72         getun();  
'n'、'u'颠倒了
板凳
发表于 2013-8-15 14:31:06 | 只看该作者
函数名写错了呗
地板
发表于 2013-8-15 20:51:09 | 只看该作者
回贴时请遵守当地法律哦。
5#
发表于 2013-8-15 21:23:34 | 只看该作者
l楼主:计算器的代码调试成功了吗?
6#
发表于 2013-8-16 09:34:15 | 只看该作者
这个怎么用啊?……{:soso_e113:}
7#
发表于 2013-8-16 09:34:30 | 只看该作者
谁教教我呗。。。不会用额、、、

点评

什么,看不懂我的代码?  发表于 2013-8-16 09:35
8#
发表于 2013-8-16 09:53:06 | 只看该作者
{:soso_e113:}刚学的……看不懂呵呵、、、、、
9#
发表于 2013-8-16 11:05:03 | 只看该作者
打开之后怎么用……?

点评

这堆代码是有问题的  发表于 2013-8-16 12:39
10#
发表于 2013-8-16 12:55:36 | 只看该作者
这个能用

#include <stdio.h>
#include <stdlib.h>
int x=0,y=0;
char op;
void oper()  
{  
     switch(op)  
     {  
         case '+':printf("%d+%d=%d\n",x,y,x+y);  
                  break;  
         case '-':printf("%d-%d=%d\n",x,y,x-y);  
                  break;  
         case '*':printf("%dx%d=%d\n",x,y,x*y);  
                  break;  
         case '/':printf("%d/%d=%d......%d\n",x,y,x/y,x%y);  
                  break;
     }
}              
int main()
{
  printf("请输入一个算式(支持+,-,*,/):\n");
   char ch;
    int i,j=0;
    for(;(ch=getchar())!='\n';)
     {if(ch>47&&ch<58&&j==0)
      {i=ch-48;
       x=x*10+i;}
      else if(ch=='+'||ch=='-'||ch=='*'||ch=='/')
            {op=ch;
             j=1;}
       if(ch>47&&ch<58&&j==1)
         {i=ch-48;
          y=y*10+i;}
     }      
  oper();   
        system("pause");
        return 0;
}
11#
 楼主| 发表于 2013-8-16 13:08:20 | 只看该作者
事实上,我刚刚才知道有atol这个函数..................
12#
发表于 2013-10-10 17:51:21 | 只看该作者
航空兔子 发表于 2013-8-16 13:08
事实上,我刚刚才知道有atol这个函数..................

事实上还有itoa
13#
发表于 2013-10-10 17:51:38 | 只看该作者
。。。。。。。。。
14#
发表于 2013-10-10 18:18:59 | 只看该作者
超神级 发表于 2013-10-10 17:51
事实上还有itoa

itoa不是标准库中得
应该用sprintf
15#
发表于 2013-10-10 18:28:05 | 只看该作者
rosynirvana 发表于 2013-10-10 18:18
itoa不是标准库中得
应该用sprintf

额....。。。。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表