#include"stdio.h"
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=0;i<=slength;i++)
printf("%d",s[i]);
}
else{
for(i=1;i<=slength;i++)
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位数的加法运算(更高位数你可相应设置),对于求减法和乘法也就大同小异了,这里不再赘述,你自己模仿修改一下吧
# include
int main()
{ int i,a,max;
scanf(“%d”,&a); //先输入一个,不然max初值不知道该是多少
max=a ; //先假定第一个就是最大的。
for(i=2;i<=100;i++) //i是循环控制变量,从2到100,保证循环99次,加上前面的一个共100个数
{
scanf(“%d”,&a);
if(a>max) max=a ; //如果新输入的数大于原max,则max=a;
}
printf(“\n max=%d”,max);
return 0;
}