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








