从键盘输入一个正整数,若为奇数,则将各个数位的数字求和并输出,若为偶数,则逆序输出,例如输入310,则输10,若输入48,则输出84,c语言
时间: 2024-12-16 10:26:28 浏览: 7
在C语言中,你可以通过以下步骤实现这个功能:
1. 首先,你需要从用户那里获取输入的正整数。可以使用`scanf`函数读取用户的输入。
```c
#include <stdio.h>
int main() {
int num;
printf("请输入一个正整数:");
scanf("%d", &num);
```
2. 接下来,检查输入的数是奇数还是偶数。这可以通过计算模运算 `%` 来判断,因为如果一个数除以2余数为0,那么它是偶数;否则,它是奇数。
```c
if (num % 2 == 0) { // 如果是偶数
// 逆序处理
} else { // 如果是奇数
// 求和处理
}
```
3. 对于偶数,你可以创建一个新的数组存储输入数的每一位,然后逆序它们并打印出来。对于奇数,你需要遍历每一位并将它们相加。
**偶数处理部分(示例)**:
```c
char digits[10]; // 假设最多9位数
sprintf(digits, "%d", num); // 将数字转换为字符数组
digits[strlen(digits)-1] = '\0'; // 删除最后的'\0'
printf("逆序输出:%s\n", digits);
```
**奇数处理部分(示例)**:
```c
int sum = 0; // 初始化和
while (num > 0) {
sum += num % 10; // 取最后一位数并加到总和上
num /= 10; // 移除最后一位
}
printf("求和结果:%d\n", sum);
```
4. 结束程序。
完整代码示例(合并两者):
```c
#include <stdio.h>
#include <string.h>
int main() {
int num;
printf("请输入一个正整数:");
scanf("%d", &num);
if (num % 2 == 0) {
char digits[10];
sprintf(digits, "%d", num);
digits[strlen(digits)-1] = '\0';
printf("逆序输出:%s\n", digits);
} else {
int sum = 0;
while (num > 0) {
sum += num % 10;
num /= 10;
}
printf("求和结果:%d\n", sum);
}
return 0;
}
```
阅读全文