int getlength(char a[]){
int i=0
while(a[i])
i++
return i
}/*返回字符串的长度*/
int chartoint(char a){
return a-48
}/*将字符编程整形*/
void creatarray(char a[],char b[]){
printf("请输入第一个数:")
scanf("%s",a)
printf("请输入第二个数:")
scanf("%s",b)
}/*创建数组*/
void go(char a[],char b[],int s[]){
int alength=getlength(a)
int blength=getlength(b)
int i=alength-1
int j=blength-1
int k/*s数组下标*/
int slength
if(alength>blength)
slength=alength
else
slength=blength
k=slength
while(i>=0&&j>=0)
s[k--]=chartoint(a[i--])+chartoint(b[j--])
while(i>=0)
s[k--]=chartoint(a[i--])
while(j>=0)
s[k--]=chartoint(b[j--])
k=slength
while(k>=2){
if(s[k]>=10){
s[k-1]++
s[k]-=10
}
k--
}
printf("两数之和为:")
if(s[1]>=10){
s[0]=1
s[1]-=10
for(i=0i<=slengthi++)
printf("%d",s[i])
}
else{
for(i=1i<=slengthi++)
printf("%d",s[i])
}
printf("\n")
}
void main(){
char a[1000],b[1000]
int s[1000]
int lab
lab1: creatarray(a,b)
go(a,b,s)
printf("请输入1继续(想退出按其他数字键):")
scanf("%d",&lab)
if(lab==1)
goto lab1
}
//该程序最高可求1000位数的加法运算(更高位数你可相应设置),对于求减法和乘法也就大同小异了,这里不再赘述,你自己模仿修改一下吧
main(){long i,j,x,num=0<br/>for(i=1i<=100i++)<br/> {x=1<br/> for(j=1j<=ij++)x*=j<br/> num+=x<br/> }
printf("%ld",num)
getch()
}