两个四位数倒序相加(大一)
【问题描述】输入两个四位正整数,将它们倒过来,然后求其和并输出。
【输入形式】输入两个四位正整数
【输出形式】输出一个四位数
【样例输入】2000 1903
【样例输出】3093
#include<stdio.h>//基于数组的实现
#include<stdlib.h>
int main()
{
int a[4],b[4],c,d;
scanf("%d",&c);
for(int i=3;i>=0;i=i-1,c=c/10)//a用来存放输入数据的各个位数,每次循环c更新
{a[i]=c%10;//取余得到个位数
}
scanf("%d",&d);
for(int i=3;i>=0;i--,d=d/10)//做法和数据c处理一样
{b[i]=d%10;
}
c=a[0];a[0]=a[3];a[3]=c;//将c作为中间变量,把四个数据位置进行调换
c=a[1];a[1]=a[2];a[2]=c;
d=b[0];b[0]=b[3];b[3]=d;//同上
d=b[1];b[1]=b[2];b[2]=d;
c=a[0]*1000+a[1]*100+a[2]*10+a[3];//调换后的数再还原,2000变0002,1903变3091
d=b[0]*1000+b[1]*100+b[2]*10+b[3];
printf("%d",c+d);//输出0002+3091的和
system("pause");
return 0;
}
有什么问题欢迎提问哈!