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]); } }
但是,当一行里有两组数据时,第二行里的第二组数据不会被显示出来,请各位指点下小弟。