| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 523 人关注过本帖
标题:程序出问题了,想问问是怎么回事。。囧。。
只看楼主 加入收藏
sophy123
Rank: 1
等 级:新手上路
帖 子:30
专家分:2
注 册:2011-5-8
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:8 
程序出问题了,想问问是怎么回事。。囧。。
题目:编写一个简单计算器程序,输入格式为:data1 op data2。其中data1和data2是参加运算的两个数(data1、data2必须定义为int,但二者相加可能超出int能表示的范围),op为运算符,它的取值只能是+、-、*、/、%。
 #include <stdio.h>
 #include <stdlib.h>
 int main(void)
 {
   int data1,data2;
   char op;
   
   printf("请输入要计算的式子,运算符(只能是+、-、*、/、%)\n:");
   do{scanf("%d%c%d",&data1,&op,&data2);
      }while(op=='+'||op=='-'||op=='*'||op=='/'||op=='%');
      switch(op)
      {
        case '+':
             {
                printf("计算结果为:%d\n",data1+data2);
            }break;
        case '-':
             {
                printf("计算结果为:%d\n",data1-data2);
            }break;
        case '*':
             {
                printf("计算结果为:%d\n",data1*data2);
            }break;
        case '/':
             {
                printf("计算结果为:%d\n",data1/data2);
            }break;
        default:{
                  printf("计算结果为:%d\n",data1%data2);
                 }
      }
   system("PAUSE");
  return 0;
 }
 
这个出不来结果,想请教大家是怎么回事
搜索更多相关主题的帖子: 计算器 
2011-05-18 21:54
lhp3774848
Rank: 2
来 自:福建省
等 级:论坛游民
帖 子:46
专家分:77
注 册:2011-5-3
收藏
得分:10 
#include <stdio.h>
#include <stdlib.h>
int fun(int data1,char op,int data2)
{
    switch(op)
      {
        case '+':
             {
                printf("计算结果为:%d\n",data1+data2);
            }break;
        case '-':
             {
                printf("计算结果为:%d\n",data1-data2);
            }break;
        case '*':
             {
                printf("计算结果为:%d\n",data1*data2);
            }break;
        case '/':
             {
                printf("计算结果为:%d\n",data1/data2);
            }break;
        default:{
                  printf("计算结果为:%d\n",data1%data2);
                 }
       }
}
int main(void)
{
   int data1,data2;
   char op;
   printf("请输入要计算的式子,运算符(只能是+、-、*、/、%)\n:");
   do{scanf("%d%c%d",&data1,&op,&data2);
     fun(data1,op,data2);
      }while(op=='+'||op=='-'||op=='*'||op=='/'||op=='%');
   system("PAUSE");
  return 0;
}
这个可以,楼主参考下。
2011-05-18 22:35
lhp3774848
Rank: 2
来 自:福建省
等 级:论坛游民
帖 子:46
专家分:77
注 册:2011-5-3
收藏
得分:0 
你那个会出现死循环
2011-05-18 22:37
sophy123
Rank: 1
等 级:新手上路
帖 子:30
专家分:2
注 册:2011-5-8
收藏
得分:0 
回复 3楼 lhp3774848
我那个就是结果不对,总是只显示data1 的值作为结果。。
2011-05-18 22:47
sophy123
Rank: 1
等 级:新手上路
帖 子:30
专家分:2
注 册:2011-5-8
收藏
得分:0 
回复 3楼 lhp3774848
结果还是不对呃。。好奇怪。。
2011-05-18 22:48
shalyf
Rank: 2
等 级:论坛游民
帖 子:21
专家分:18
注 册:2011-5-12
收藏
得分:0 
程序代码:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    int data1,data2;
    char op;

    printf("请输入要计算的式子,运算符(只能是+、-、*、/、%)\n:");
    while(scanf("%d%c%d",&data1,&op,&data2)!=EOF)
    {
        switch(op)
        {
        case '+':
            {
                printf("计算结果为:%d\n",data1+data2);break; 
            }
        case '-':
            {
                printf("计算结果为:%d\n",data1-data2);break; 
            }
        case '*':
            {
                printf("计算结果为:%d\n",data1*data2);break; 
            }
        case '/':
            {
                printf("计算结果为:%d\n",data1/data2);break;
            }
        default:
            {
                printf("计算结果为:%d\n",data1%data2);break;
            }
        }
    }

    system("PAUSE"); 
    return 0;
}

2011-05-18 23:43
qima8888
Rank: 2
等 级:论坛游民
帖 子:2
专家分:10
注 册:2011-5-18
收藏
得分:10 
do while死循环  改成while(0)退出循环就好了
2011-05-18 23:50
zhp0127
Rank: 1
等 级:新手上路
帖 子:2
专家分:1
注 册:2011-5-18
收藏
得分:0 
while循环没必要。
2011-05-19 00:03
liujigen
Rank: 2
等 级:论坛游民
帖 子:32
专家分:63
注 册:2010-8-24
收藏
得分:0 
#include <stdio.h>
#include <stdlib.h>
int fun(int data1, char op, int data2) {
    switch (op) {
    case '+': {
        printf("计算结果为:%d\n", data1 + data2);
    }
        break;
    case '-': {
        printf("计算结果为:%d\n", data1 - data2);
    }
        break;
    case '*': {
        printf("计算结果为:%d\n", data1 * data2);
    }
        break;
    case '/': {
        printf("计算结果为:%f\n",(float)data1 / data2);
    }
        break;
    default: {
        printf("计算结果为:%d\n", data1 % data2);
        break;
    }
    }
    return 0;
}
int main(void) {
    int data1, data2;
    char op;
    printf("请输入要计算的式子,运算符(只能是+、-、*、/、%)\n:");
    do {
        scanf("%d%c%d", &data1, &op, &data2);
        fun(data1, op, data2);
        break;
    } while (op == '+' || op == '-' || op == '*' || op == '/' || op == '%');
    system("PAUSE");
    return 0;
}
2011-05-20 14:26
快速回复:程序出问题了,想问问是怎么回事。。囧。。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024015 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved