| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 345 人关注过本帖
标题:C语言,加减混合练习题
只看楼主 加入收藏
yjjlyyj
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-11-24
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
C语言,加减混合练习题
加减混合练习题。  
计算A、B两个整数的和或差。  
  
输入数据包含若干组测试案例。  
输入数据由ADD或SUB打头。后面跟着A和B两个数。输入数据之间用空格隔开。  
  
如果输入数据以ADD打头,则输出A+B的结果;如果输入数据以SUB打头,则输出A-B的结果。输出完后,要回车换行。  
  
输入数据样式:  
ADD 3 8  
SUB 6 7 ADD 7 8  
  
输出数据格式:  
3+8=11  
6-7=-1  
7+8=15

=================================================================

我的代码如下:
程序代码:
#include<stdio.h>
#include<string.h>
int main()
{
    char ss[4];
    int A,B,sum,g[80],q=0,p=0,i,h[80],j;
    while(fgets(ss,4,stdin)!=NULL)
    {
        scanf("%d%d",&A,&B);
        if(strcmp(ss,"ADD")==0)
        {
            h[p]=1;        //h[p]数组存放1或2,1为加运算,2为减运算。
            p++;
            sum=A+B;
            g[q]=A;       //将A,B,SUM 顺序存入数组。
            g[q+1]=B;
            g[q+2]=sum;
            q=q+3;
        }
        else if(strcmp(ss,"SUB")==0)
        {
            h[p]=2;
            p++;
            sum=A-B;
            g[q]=A;
            g[q+1]=B;
            g[q+2]=sum;
            q=q+3; 
        }
    } 
    for(i=0,j=0;i<q;i+=3,j++)
    {
        if(h[j]==1)
        printf("%d+%d=%d\n",g[i],g[i+1],g[i+2]);
        else
        printf("%d-%d=%d\n",g[i],g[i+1],g[i+2]);
    }
}


但是,当一行里有两组数据时,第二行里的第二组数据不会被显示出来,请各位指点下小弟。

搜索更多相关主题的帖子: 练习题 C语言 
2010-11-28 16:32
xiaomarn
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:348
专家分:2026
注 册:2009-3-18
收藏
得分:20 
程序代码:
#include<stdio.h>
#include<string.h>

int
main(void)
{
      char ss[4];
      int A,B,sum,g[80],q=0,p=0,i,h[80],j;

      while(fgets(ss,4,stdin)!=NULL)
      {
            /*printf("%s",ss);*/
            if(strcmp(ss,"END")==0)
            {  

                  h[p]=3;
                  break;
            }
            scanf("%d%d",&A,&B);
            /*printf("%d %d",A,B);*/
            if(strcmp(ss,"ADD")==0)
            {
                  h[p]=1;        /*h[p]数组存放1或2,1为加运算,2为减运算。  */
                  p++;
                  sum=A+B;
                  g[q]=A;       /*将A,B,SUM 顺序存入数组? */
                  g[q+1]=B;
                  g[q+2]=sum;
                  q=q+3;
            }
            else if(strcmp(ss,"SUB")==0)
            {
                  h[p]=2;
                  p++;
                  sum=A-B;
                  g[q]=A;
                  g[q+1]=B;
                  g[q+2]=sum;
                  q=q+3;
            }

            while((i=getchar())==' ')
                  ;
            ungetc(i,stdin);
      }
      for(i=0,j=0;i<q;i+=3,j++)
      {
            if(h[j]==1)
                  printf("%d+%d=%d\n",g[i],g[i+1],g[i+2]);
            else if(h[j]==2)
                  printf("%d-%d=%d\n",g[i],g[i+1],g[i+2]);
      }
      getch();
      return 0;
}
输入END显示
运行效果:
图片附件: 游客没有浏览图片的权限,请 登录注册

2010-11-28 17:10
yjjlyyj
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-11-24
收藏
得分:0 
后来做出了,不过还是谢谢你呐,其实 用scanf("%s")就可以了 呵呵
2010-11-28 17:19
快速回复:C语言,加减混合练习题
数据加载中...
 
   



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

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