五进制整数的加减运算

[复制链接]
查看11 | 回复2 | 2020-11-18 08:56:08 | 显示全部楼层 |阅读模式
#include "stdio.h"#include "stdlib.h"#include "string.h"int pan(char a[])//判断是否有大于4的数 {int i=strlen(a)-1;while(i>=0)if(a>'4')return 0;else i--;return 1;}void jia(char a[],char b[],char c[])//将a,b相加,结果存放于c {int i=strlen(a)-1,j=strlen(b)-1,n=99,t,q;for(t=i,q=n;t>=0;t--,q-- )c[q]=a[t];for(;j>=0;j--,n--){c[n]=c[n]+b[j]-'0';if(c[n]>'4'){c[n]=c[n]-5;c[n-1]++;}}
}void jian(char a[],char b[],char c[])//将a,b相减,结果存放于c {int i=strlen(a)-1,j=strlen(b)-1,n=99,t,q;for(t=i,q=n;t>=0;t--,q-- )c[q]=a[t];for(;j>=0;j--,n--)if(c[n]-b[j]'0')break;printf("\n%s+%s=",a,b);for(;i<100;i++)printf("%c",c);jian(a,b,d);//调用减法//将a,b相减,结果存放于dfor(i=0;;i++)if(d!='0')break;printf("\n%s-%s=",a,b);if(i==100)printf("0");elsefor(;i<100;i++)printf("%c",d);system("pause");}
回复

使用道具 举报

千问 | 2020-11-18 08:56:08 | 显示全部楼层
法1:可以先把五进制数换算成十进制数后进行运算,再把结果换算成五进制数法2:做加法逢5进1,做减法不够退1.举个例子:32+124列出算式:124+32▁▁▁▁2114+2=6=5+1=11(进1);2+3+1=6=5+1=11(进1);1+1=2;结果是211举个减法的例子:211-32列出算式:211-32▁▁▁▁124个位数不够,退1,11-2=5+1-2=4;十位数不够,退1,10-3=5-3=2结果是124这样说应该明白了吧^^
回复

使用道具 举报

千问 | 2020-11-18 08:56:08 | 显示全部楼层
只有30分?别做梦了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行