C语言设计20进制的数相加
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/05 21:41:07
C语言设计20进制的数相加
输入 1234567890
abcdefghij
输出相应的结果
输入可以使任何数 当然也可以输入ab等
输入 1234567890
abcdefghij
输出相应的结果
输入可以使任何数 当然也可以输入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;
}
再问: 额。。不对呀 ,经验证,不过还是谢谢你啊,能帮忙修改下吗
再答: 哪里不对 我试了下 行啊
再问: 10+10应该=10的呀 16+4应该也=10的呀
再答: 既然是20进制的数相加 那么输入的两个数就是20进制的 怎么会错
再问: 我戳,是我错了,嘿嘿,高手,谢谢啊
再答: 不用谢 那就请采纳哈!
#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;
}
再问: 额。。不对呀 ,经验证,不过还是谢谢你啊,能帮忙修改下吗
再答: 哪里不对 我试了下 行啊
再问: 10+10应该=10的呀 16+4应该也=10的呀
再答: 既然是20进制的数相加 那么输入的两个数就是20进制的 怎么会错
再问: 我戳,是我错了,嘿嘿,高手,谢谢啊
再答: 不用谢 那就请采纳哈!
C语言设计20进制的数相加
C语言中的通用两数相加问题 ,综合小数相加,分数相加,整数相加以及不同进制之间的两数相加
用C语言语句设计一段程序,功能是统计100至到1000之间各位数相加之和为7的个数.
用C语言设计判断数的范围:=1000
c语言设计判断三个数最大值的程序
c语言为什么 不能把很大的浮点数和很小的浮点数相加
用C语言编写:两个整数相加和两个小数相加后相乘,并显示两数相乘的结果
C语言,求每一行最大的数,然后相加,哪里错了?
c语言输出1到100中所有个位和十位相加等于10的数
C语言中 有符号和无符号的数相加 怎么算?
如何用C语言设计一个32位无符号数长整数求和的函数?相加之和存储在两个32位无符号整数中 .输入的是两个 int型的,相
用C语言指针写一个两个数比较大小,相加减,输出最大,最小,两个数的和