C语言:大数相加与大数相减.
发布时间:2020-12-14 03:29:03 所属栏目:大数据 来源:网络整理
导读:??#includestdio.h#includestring.h#define N 100int res[N] = {0};char *add(char a[],int n,char b[],int m) //大数相加{int i=N-1,z=0,j;for( ; n=0; n--,m--){if(m=0)res[i] = res[i] + a[n]-'0' + b[m]-'0';//res[i]=0或res[i]=1;elseres[i] = res[i] +
??#include<stdio.h> #include<string.h> #define N 100 int res[N] = {0}; char *add(char a[],int n,char b[],int m) //大数相加 { int i=N-1,z=0,j; for( ; n>=0; n--,m--) { if(m>=0) res[i] = res[i] + a[n]-'0' + b[m]-'0';//res[i]=0或res[i]=1; else res[i] = res[i] + a[n] - '0'; if( res[i] > 9 ) { res[i] = res[i] - 10; res[i-1]++; } i--; } for(j=0 ;i<=N-1; i++,j++) a[j] = res[i] + '0'; a[j]=' '; while(a[z] == '0') z++; a = a+z; return a; } char *change(char a[],int m) { if(a[0]=='0' && b[0] == '0') return "0"; else if(n>=m) a = add(a,n,b,m); else a = add(b,m,a,n); return a; } void main() { char a[N],b[N],*s; int n,m; printf("Please input the first number: "); gets(a); printf("nnPlease input the second number: "); fflush(stdin); gets(b); n = strlen(a)-1; m = strlen(b)-1; printf("nnThe first number add the second number is: "); s = change(a,m); puts(s); } #include<stdio.h> #include<string.h> char *sub(char a[],int m) //大数相减 { int z=0; for( ; n>=0; n--,m--) { if(m>=0) a[n] = a[n] - b[m] + '0'; else a[n] = a[n]; if(a[n] < '0') { a[n] = a[n] +10; a[n-1]--; } } while(a[z] == '0') z++; a = a+z; return a; } char *change(char a[],int m) { if(n>m) a = sub(a,m); if(n<m) { printf("-"); a = sub(b,n); } if(n==m) { if(strcmp(a,b) > 0) a = sub(a,m); else if(strcmp(a,b) <0) { printf("-"); a = sub(b,n); } else return "0"; } return a; } void main() { char a[100],b[100],m; printf("请输入被减数: "); gets(a); printf("nn请输入减数: "); fflush(stdin); gets(b); n = strlen(a)-1; m = strlen(b)-1; printf("nn两数相减: "); s = change(a,m); puts(s); printf("n"); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |