望高手给出正确答案
通过程序实现任意两个正整数的加减乘除运算要求:(1)要求程序能够处理任意大的正整数
(2)要求程序以字符的形势接受用户的输入
(3)计算是对齐位数,注意考虑进位,退位
(4)要求程序能够打印计算结果
(5)可以进行多个数运算
程序代码:#include<stdio.h>
#include<string.h>
void inv(char str[], int n)
{
int i, j; char temp;
for(i=0, j=n-i-1; i<j; i++, j--)
temp=str[i], str[i]=str[j], str[j]=temp;
}
int main()
{
int i, j=0, n, m=0, len1, len2;
char str1[1001], str2[1001];
scanf("%d\n",&n);m=n;
while(n--)
{
scanf("%s%s",str1,str2);
printf("Case %d:\n%s + %s = ",++j,str1,str2);
len1=strlen(str1);
len2=strlen(str2);
inv(str1, len1);
inv(str2, len2);
if(len1<=len2)
{
for(i=0; i<len1; i++)
{
str2[i]+=str1[i]-'0';
if(str2[i]>'9' && i<len2-1)
str2[i]-=10, str2[i+1]++;
}
if(str2[len2-1]>'9')
str2[len2-1]-=10, str2[len2]='1', str2[len2+1]='\0';
inv(str2, strlen(str2));
printf("%s\n",str2);
}
else
{
for(i=0; i<len2; i++)
{
str1[i]+=str2[i]-'0';
if(str1[i]>'9')
str1[i]-=10, str1[i+1]++;
}
inv(str1, strlen(str1));
printf("%s\n",str1);
}
if(n>0)
printf("\n");
}
return 0;
}
程序代码:#include "stdio.h"
void main()
{
int a,b,c;
char ch;
printf("请以a+b的格式输入");
scanf("%d%c%d",&a,&ch,&b);
switch(ch)
{
case'+':
c=a+b;
rintf("%d+%d=%d",a,b,c);
break;
case'-':
c=a-b;
printf("%d-%d=%d",a,b,c);
break;
case'*':
c=a*b;
printf("%d*%d=%d",a,b,c);
break;
case'/':
c=a/b;
printf("%d/%d=%d",a,b,c);
break;
default:printf("无解");
}
}