c语言:8.编写程序实现功能:输人整数a和b,若a3+b2>1000,则输出a3+b2之和的千位以上数字,否则直接输出a3+b2的和。 输入:10 10 输出:1 输入:1 2 输出:5
时间: 2024-09-27 14:07:06 浏览: 50
(完整版)C语言题库和答案(基础版).doc
在C语言中,为了实现这个功能,我们需要先将输入的整数转换成字符串,然后提取出它们的各位数字,并进行相应的加法运算。如果结果大于1000,则取千位以上的数字。以下是详细的代码示例:
```c
#include <stdio.h>
#include <string.h>
// 函数用于获取一个整数的千位以上数字
char* get_high_digits(int num) {
char str[5]; // 足够存储四位数字
sprintf(str, "%d", num);
char* result = str + strlen(str) - 1; // 高位指针从后往前移动一位
return result;
}
int main() {
int a, b;
scanf("%d %d", &a, &b);
// 计算a3 + b2
int sum = a * a * a + b * b;
if (sum > 1000) {
char high_digit_str[5] = "";
char* high_digits = get_high_digits(sum);
high_digit_str[0] = *high_digits; // 获取最高位数字
high_digit_str[1] = '\0'; // 结束字符串
printf("%s\n", high_digit_str);
} else {
printf("%d\n", sum);
}
return 0;
}
```
对于输入 `10 10`,计算得到的 `a3 + b2` 是 1000,因此输出为 `'1'`。输入 `1 2`,`a3 + b2` 的和为 `1001`,输出为 `'1'`。
阅读全文