填空题"/>
【C语言】程序填空题
系列文章目录
文章目录
- 系列文章目录
- 1、超长整数加法
- 2.一维数组实现杨辉三角
1、超长整数加法
从键盘输入两个超长整数,输出这两个数的和。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
char *ladd(char *s1, char *s2){int n1, n2, n, i;char *result, c = 0;n1 = strlen(s1); //数字串s1的长度n2 = strlen(s2); //数字串s2的长度n = n1 > n2?n1:n2; //数字串s1,s2最大长度result = (char*)malloc(n + 2); //申请存结果串的内存for(i = n + 1; i >= 0; i--) //将s1从低位开始搬到result,没有数字的位以及最高位填'0'result[i] = i > n - n1?s1[i-n+n1-1]:'0';for( i = n; i >= 0; i--){char tchar;tchar = i > n- n2?result[i]-'0'+s2[i - n + n2 - 1] - '0' +c:result[i] - '0' + c; //将数字字符变为数c = tchar > 9?1:0; //设进位result[i] = tchar % 10 + '0';}return result;
}
int main(){char num1[100], num2[100], *num;scanf("%s %s", num1, num2);num = ladd(num1, num2);printf("%s+%s=%s\n", num1, num2, num);free(num);return 0;}
—————————————————————————————————
success
2.一维数组实现杨辉三角
#define LASTROW 10
int main(){int row, col a[11];a[1] = 1;printf("%4d\n", a[1]);for(row = 2; row <= LASTROW; row++){a[row] = 1;for( col = row - 1; col >= 2; col--)a[col] = a[col] + a[col - 1];for(col = 1; col <= row; col++)printf("%4d", a[col]);printf("\n");}
更多推荐
【C语言】程序填空题
发布评论