C语言类型的题
#include <stdio.h>#include<string.h>
int main()
{
char a[1000],b[1000],d;
int c[1000],x,y,z,i,j;
i=0;
printf("请输入一个数:\n");
gets(a);
printf("请输入运算符:\n");
getchar();
d=getchar();
printf("请再输入一个数:\n");
gets(b);
x=strlen(a);
y=strlen(b);
z=1+(x>y)?x:y;
switch(d)
{
case '+':for(;z>0;z--)
{
if(a[x-1]+b[y-1]+i-96<10)
c[z-1]=a[x-1]+b[y-1]-96+i;
if(a[x-1]+b[y-1]-96+i>=10)
{
j=a[x-1]+b[y-1]+i-96;
while(j>=10)
{
i=0;
j=j-10;
i++;
}
c[z-1]=j;
}
x--;
y--;
}break;
}
for(i=0;i<z;i++)
printf("%d",c[i]);
return 0;
}(大神求解,通过程序实现任意两个正整数的加减乘除运算。
要求:
(1) 要求程序能够处理任意大的正整数。
(2) 要求程序以字符的形势接受用户的输入。
(3) 计算时对齐位数,注意考虑进位,退位。
(4) 要求程序能够打印计算的结果。
(5) 要求实现多个数运算。
例如:三个数组a,b,c,通过程序实现a+b=c,a接受用户输入数为123,则a[0]=1,a[1]=2,a[2]=3;同理b为99,则b[0]=9,b[1]=9;实现加法运算时,个位相加a[2]+b[1]后个位为2,存进c中,保留进位1,十位相加a[1]+[0]后十位为1,加上进位后十位为2,存进c中,最后a数百位加上进位为2,则a+b实现了加法,结果c为222。
我只做了加法,但是输出的都是0.)