编写一个函数,其功能是求一个长正整数各位数字之和。要求使用指针函数实现结果的返回。在主函数中进行测试。例如,在主函数中输入348762,输出结果为30,即3+4+8+7+6+2的和
时间: 2024-02-25 08:57:11 浏览: 37
好的,以下是C语言代码实现:
```c
#include <stdio.h>
int sumDigits(char *num) {
int sum = 0;
while (*num != '\0') {
sum += *num - '0';
num++;
}
return sum;
}
int main() {
char num[100];
printf("请输入一个长正整数:");
scanf("%s", num);
printf("各位数字之和为:%d\n", sumDigits(num));
return 0;
}
```
使用指针函数实现结果的返回,通过while循环依次计算每个数字的值并累加到sum变量中。在主函数中输入一个长正整数后,调用子函数求它的各位数字之和并输出。
相关问题
C语言编写一函数,其功能是求一个长正整数各位数字之和,要求使用指针函数实现结果的返回,在主函数中进行测试
可以按照下面的代码编写这个函数:
```c
#include <stdio.h>
int sumDigits(char *number);
int main()
{
char number[100];
printf("请输入一个长正整数:");
scanf("%s", number);
printf("各位数字之和为:%d\n", sumDigits(number));
return 0;
}
int sumDigits(char *number)
{
int sum = 0;
while (*number != '\0')
{
sum += *number - '0';
number++;
}
return sum;
}
```
在这个函数中,我们使用了一个指向字符数组的指针 `number`,并通过循环遍历数组中的每一个字符,计算各位数字之和。需要注意的是,在计算时需要将字符转换成对应的数字,这里使用了 `*number - '0'` 的方式来实现。
在主函数中,我们输入了一个长正整数,并调用 `sumDigits` 函数来计算各位数字之和,最终输出结果。
用c++编写函数 给定一个包含n个正整数的数组,自定义函数,计算数组中能被3整除的数的平均值 (精确到小数点后2位),要求利用指针实现并在主函数中进行输入输出
好的,下面是代码实现:
```c++
#include <iostream>
using namespace std;
void calcAvg(int *arr, int n, float *avg) {
int sum = 0, count = 0;
for (int i = 0; i < n; i++) {
if (arr[i] % 3 == 0) {
sum += arr[i];
count++;
}
}
if (count > 0) {
*avg = (float)sum / count;
}
}
int main() {
int n;
cin >> n;
int *arr = new int[n];
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
float avg = 0;
calcAvg(arr, n, &avg);
printf("%.2f", avg);
delete[] arr;
return 0;
}
```
解释一下:
- `calcAvg` 函数用于计算数组中能被 3 整除的数的平均值,并把结果存入 `avg` 指针指向的变量中。
- `main` 函数中,先读入数组长度 `n`,然后动态分配一个长度为 `n` 的数组 `arr`,并读入 `n` 个整数存入数组中。
- 接着,定义一个 `float` 类型的变量 `avg`,并调用 `calcAvg` 函数计算结果。
- 最后,输出结果并释放动态分配的数组空间。
注意:输出时要保留小数点后两位,因此使用了 `printf` 函数。
阅读全文