#include <string.h> #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { char str1[100] = {'\0'}, str2[100] = {'\0'}; while (scanf("%s%s", str1, str2) != EOF) { int size_str1 = 0, size_str2 = 0;//存储两个大数的位数 int number_str1[100] = {0}, number_str2[100] = {0}; //分别计算两个大数的位数 size_str1 = strlen(str1); size_str2 = strlen(str2); //将字符数组转化为数字数组,并倒序存储在整型数组中 for (int i = size_str1 - 1, j = 0; i >= 0; --i) { number_str1[j] = str1[i] - '0'; j++; } for (int i = size_str2 - 1, j = 0; i >= 0; --i) { number_str2[j] = str2[i] - '0'; j++; } //实现大数的加法 for (int i = 0; i <= 100; ++i) { number_str1[i] = number_str1[i] + number_str2[i]; //判断是否产生进位 if (number_str1[i] > 9) { number_str1[i] -= 10; number_str1[i + 1]++; } } //计算最终结果的位数 int i = 99; for (i = 99; i >= 0 && number_str1[i] == 0; --i); //输出结果 if (i >= 0) { for (int j = i; j >= 0; --j) { printf("%d", number_str1[j]); } } else { printf("0"); } printf("\n"); } return 0; }
0.0分
4 人评分
C语言程序设计教程(第三版)课后习题9.6 (C语言代码)浏览:373 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)from DQM浏览:671 |
1642题解浏览:715 |
Minesweeper (C语言描述,蓝桥杯)浏览:1127 |
出圈】指针malloc版浏览:355 |
川哥的吩咐 (C语言代码)浏览:611 |
C语言程序设计教程(第三版)课后习题8.4 (C语言代码)浏览:560 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:468 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:698 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:514 |