c语言:输入两个最大长度不超过四位的不相等的整型数字,将每一位(个、十、百、千位)上的数字值相加,输出相加和最大的数,如数字123的数位和为6,数字19数位和为10,10>6,输出19,当两数的数位和相等时输出原始数中的较大值。
时间: 2024-10-29 12:15:32 浏览: 11
c语言编写程序实现两个超长正整数(每个最长80位数字)的减法运算
在C语言中,你可以通过遍历每个数字的每一位,然后分别对每一位进行求和,最后比较这两个数的数位和以及原始数值,来解决这个问题。这里是一个简单的示例程序:
```c
#include <stdio.h>
#include <string.h>
// 函数声明
int sumOfDigits(int num);
int getDigitSum(char* str);
int main() {
char num1[5], num2[5];
printf("请输入第一个数字(不超过四位):");
fgets(num1, sizeof(num1), stdin); // 防止末尾的换行符
num1[strcspn(num1, "\n")] = '\0'; // 去除换行符
printf("请输入第二个数字(不超过四位):");
fgets(num2, sizeof(num2), stdin);
num2[strcspn(num2, "\n")] = '\0';
int digitSum1 = getDigitSum(num1);
int digitSum2 = getDigitSum(num2);
if (digitSum1 > digitSum2) {
printf("输出较大的数:%s\n", num1);
} else if (digitSum1 == digitSum2) {
if (strcmp(num1, num2) > 0) { // 字符串比较
printf("输出较大的数:%s\n", num1);
} else {
printf("输出较大的数:%s\n", num2);
}
} else {
printf("输出较大的数:%s\n", num2);
}
return 0;
}
// 数字字符串转为位数和函数
int getDigitSum(char* str) {
int sum = 0;
for (int i = 0; i < strlen(str); i++) {
if (str[i] >= '0' && str[i] <= '9') {
sum += str[i] - '0';
}
}
return sum;
}
```
在这个程序中,`getDigitSum`函数用于计算字符串表示的整数的各个位数之和,主函数则负责获取用户输入并比较结果。
阅读全文