|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 一世轻尘 于 2020-12-22 20:19 编辑
求助3
- #include <stdio.h>
- void reverse(char s[])
- {
- char c ;
- int i , m ;
- for(m = 0 ; s[m] ; m ++) ;
- for(i = 0 ; i < m / 2 ; i ++) {
- c = s[m - 1 - i] ;
- s[m - 1 - i] = s[i] ;
- s[i] = c ;
- }
- }
- char * add(char c[] , char a[] , char b[])
- {
- int e , i , m ;
- reverse(a) ;
- reverse(b) ;
- for(i = 0 ; a[i] && b[i] ; i ++) c[i] = a[i] - '0' + b[i] - '0' ;
- for(; a[i] ; i ++) c[i] = a[i] - '0' ;
- for(; b[i] ; i ++) c[i] = b[i] - '0' ;
- c[i] = '\0' ;
- for(m = i , e = i = 0 ; i < m || e ; i ++) {
- if(i > m - 1) c[i] = 0 ;
- if(e) {
- c[i] ++ ;
- e = 0 ;
- }
- if(c[i] > 9) {
- c[i] -= 10 ;
- e = 1 ;
- }
- c[i] += '0' ;
- }
- c[i] = '\0' ;
- reverse(c) ;
- return c ;
- }
- int main(void)
- {
- char a[] = "9999999999999999999999999999999999999999999999999999999999" ;
- char b[] = "123456789012345678901234567890123456789012345678901234567890" ;
- char c[256] ;
- printf("%s\n" , add(c , a , b)) ;
- }
复制代码
|
|