C语言:从键盘输入一个正整数n, 计算该数的各位数之 和并输出(定义一个新函数)
时间: 2024-01-23 10:04:03 浏览: 110
好的,下面是一个简单的 C 语言程序,用于从键盘输入一个正整数 n,计算该数的各位数之和并输出:
```c
#include <stdio.h>
int sum_of_digits(int n);
int main() {
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
printf("该数的各位数之和为:%d\n", sum_of_digits(n));
return 0;
}
int sum_of_digits(int n) {
int sum = 0;
while (n > 0) {
sum += n % 10;
n /= 10;
}
return sum;
}
```
在这个程序中,我们使用了一个名为 `sum_of_digits` 的新函数来计算一个正整数的各位数之和。该函数使用一个 while 循环来逐位地将输入的数除以10,每次取余数并将其加到一个名为 `sum` 的变量上,直到输入的数变成0为止。最后,该函数返回 `sum` 变量的值,即该数的各位数之和。在 `main` 函数中,我们使用 `scanf` 函数从键盘输入一个正整数 `n`,并将其作为参数传递给 `sum_of_digits` 函数。最后,我们将 `sum_of_digits` 函数的返回值打印到终端上。
相关问题
C语言:从键盘输入一个正整数n, 计算该数的各位数之 和并输出(定义一个新函数,递归法)
好的,下面是一个使用递归法实现的 C 语言程序,用于从键盘输入一个正整数 n,计算该数的各位数之和并输出:
```c
#include <stdio.h>
int sum_of_digits(int n);
int main() {
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
printf("该数的各位数之和为:%d\n", sum_of_digits(n));
return 0;
}
int sum_of_digits(int n) {
if (n < 10) {
return n;
} else {
return n % 10 + sum_of_digits(n / 10);
}
}
```
在这个程序中,我们同样使用了一个名为 `sum_of_digits` 的新函数来计算一个正整数的各位数之和。该函数使用递归的方式来计算各位数之和。具体来说,如果输入的数小于10,则直接返回该数;否则,该函数将输入的数除以10并取余数,将余数加到该数的各位数之和中,然后递归调用 `sum_of_digits` 函数并传递该数除以10的商作为参数。当输入的数变成一位数时,递归过程结束,并将各位数之和返回给调用者。
在 `main` 函数中,我们同样使用 `scanf` 函数从键盘输入一个正整数 `n`,并将其作为参数传递给 `sum_of_digits` 函数。最后,我们将 `sum_of_digits` 函数的返回值打印到终端上。
c语言:从键盘输入一个正整数值,将这个数逆序输出
在C语言中,你可以使用数组来存储用户输入的数字,并通过循环结构倒序输出。下面是一个简单的示例程序:
```c
#include <stdio.h>
#define MAX_DIGITS 10 // 设定最大位数以防溢出
void reverse(int num[], int size) {
int start = 0;
int end = size - 1;
while (start < end) {
int temp = num[start]; // 临时保存起始位置的数
num[start] = num[end]; // 将末尾数移到起始位置
num[end] = temp; // 把临时值放到末尾
start++; // 起始位置右移一位
end--; // 结束位置左移一位
}
}
int main() {
int num[MAX_DIGITS];
int input;
printf("请输入一个正整数:");
scanf("%d", &input);
if (input > 0 && input <= MAX_DIGITS) { // 验证输入是否合法
num[0] = input; // 将输入的数存入数组
reverse(num, 1); // 反转数组
for (int i = 0; i < sizeof(num) / sizeof(num[0]); i++) {
printf("%d", num[i]);
}
} else {
printf("输入错误!请输入一个正整数。\n");
}
return 0;
}
```
在这个程序中,我们首先获取用户的输入并检查它是否是一个正整数。然后我们将输入的数存入数组`num`,并通过`reverse`函数将其逆序,最后遍历数组打印出结果。
阅读全文