C语言设计20进制的数相加 输入 1234567890abcdefghij输出相应的结果输入可以使任何数 当然也可以输入ab等
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/30 20:11:22
![C语言设计20进制的数相加 输入 1234567890abcdefghij输出相应的结果输入可以使任何数 当然也可以输入ab等](/uploads/image/z/5169211-43-1.jpg?t=C%E8%AF%AD%E8%A8%80%E8%AE%BE%E8%AE%A120%E8%BF%9B%E5%88%B6%E7%9A%84%E6%95%B0%E7%9B%B8%E5%8A%A0+%E8%BE%93%E5%85%A5+1234567890abcdefghij%E8%BE%93%E5%87%BA%E7%9B%B8%E5%BA%94%E7%9A%84%E7%BB%93%E6%9E%9C%E8%BE%93%E5%85%A5%E5%8F%AF%E4%BB%A5%E4%BD%BF%E4%BB%BB%E4%BD%95%E6%95%B0+%E5%BD%93%E7%84%B6%E4%B9%9F%E5%8F%AF%E4%BB%A5%E8%BE%93%E5%85%A5ab%E7%AD%89)
C语言设计20进制的数相加 输入 1234567890abcdefghij输出相应的结果输入可以使任何数 当然也可以输入ab等
C语言设计20进制的数相加
输入 1234567890
abcdefghij
输出相应的结果
输入可以使任何数 当然也可以输入ab等
C语言设计20进制的数相加 输入 1234567890abcdefghij输出相应的结果输入可以使任何数 当然也可以输入ab等
#include
#include
int main()
{
\x05char s1[100],s2[100],s3[200];
\x05int len1,len2,carryover=0,k,i=198;
\x05printf("请输入第一个二十进制数:");
\x05gets(s1);
\x05printf("请输入第二个二十进制数:");
\x05gets(s2);
\x05len1=strlen(s1);
\x05len2=strlen(s2);
s3[199]=0;
\x05len1--;
\x05len2--;
\x05while(len1>=0&&len2>=0)
\x05{
\x05\x05if(s1[len1]>=97)
\x05\x05\x05k=s1[len1]-87;
\x05\x05else
\x05\x05\x05k=s1[len1]-48;
\x05\x05if(s2[len2]>=97)
\x05\x05\x05k+=s2[len2]-87;
\x05\x05else
\x05\x05\x05k+=s2[len2]-48;
\x05\x05if((k%20+carryover)>=10)
\x05\x05 s3[i]=k%20+carryover+87;
\x05\x05else
\x05\x05\x05s3[i]=k%20+carryover+48;
\x05\x05carryover=k/20;
\x05\x05i--;
\x05\x05len1--;
\x05\x05len2--;
\x05}
\x05if(len1>len2)
\x05{
\x05\x05while(len1>=0)
\x05\x05{
\x05\x05\x05if((s1[len1]+carryover-87)>=20)
\x05\x05\x05{
\x05\x05\x05\x05s3[i]=(s1[len1]+carryover-87)%20;
\x05\x05\x05\x05carryover=(s1[len1]+carryover-87)/20;
\x05\x05\x05\x05len1--;
\x05\x05\x05\x05i--;
\x05\x05\x05}
\x05\x05\x05else
\x05\x05\x05{
\x05\x05\x05\x05s3[i]=s1[len1]+carryover;
\x05\x05\x05\x05len1--;
\x05\x05\x05\x05i--;
\x05\x05\x05}
\x05\x05}
\x05}
\x05else if(len1=0)
\x05\x05{
\x05\x05\x05if((s2[len2]+carryover-87)>=20)
\x05\x05\x05{
\x05\x05\x05\x05s3[i]=(s2[len2]+carryover-87)%20;
\x05\x05\x05\x05carryover=(s2[len2]+carryover-87)/20;
\x05\x05\x05\x05len2--;
\x05\x05\x05\x05i--;
\x05\x05\x05}
\x05\x05\x05else
\x05\x05\x05{
\x05\x05\x05\x05s3[i]=s2[len2]+carryover;
\x05\x05\x05\x05len2--;
\x05\x05\x05\x05i--;
\x05\x05\x05}
\x05\x05}
\x05}
\x05else
\x05{
\x05\x05if(carryover!=0)
\x05\x05\x05s3[i--]=carryover+48;
\x05}
\x05printf("二者的和是:\n");
\x05puts(s3+i+1);
\x05return 0;
}