C语言求和,两函数如何分工实现?

99ANYc3cd6
预计阅读时长 8 分钟
位置: 首页 C语言 正文

C语言求和函数示例

下面我将编写两个不同的求和函数,分别演示不同的求和方式。

c语言求和 编写两个函数
(图片来源网络,侵删)

数组元素求和

#include <stdio.h>
// 函数1:计算整型数组的所有元素之和
int arraySum(int arr[], int size) {
    int sum = 0;
    for (int i = 0; i < size; i++) {
        sum += arr[i];
    }
    return sum;
}
int main() {
    int numbers[] = {1, 2, 3, 4, 5};
    int size = sizeof(numbers) / sizeof(numbers[0]);
    int result = arraySum(numbers, size);
    printf("数组元素之和为: %d\n", result);
    return 0;
}

使用指针进行求和

#include <stdio.h>
// 函数2:使用指针计算数组元素之和
int pointerSum(int *arr, int size) {
    int sum = 0;
    int *ptr = arr; // 指向数组首元素
    for (int i = 0; i < size; i++) {
        sum += *ptr; // 解引用指针获取值
        ptr++;       // 移动指针到下一个元素
    }
    return sum;
}
int main() {
    int numbers[] = {10, 20, 30, 40, 50};
    int size = sizeof(numbers) / sizeof(numbers[0]);
    int result = pointerSum(numbers, size);
    printf("使用指针求和结果为: %d\n", result);
    return 0;
}

递归实现求和

#include <stdio.h>
// 函数3:递归计算数组元素之和
int recursiveSum(int arr[], int size) {
    if (size == 0) {
        return 0;
    } else {
        return arr[size - 1] + recursiveSum(arr, size - 1);
    }
}
int main() {
    int numbers[] = {1, 3, 5, 7, 9};
    int size = sizeof(numbers) / sizeof(numbers[0]);
    int result = recursiveSum(numbers, size);
    printf("递归求和结果为: %d\n", result);
    return 0;
}

可变参数求和

#include <stdio.h>
#include <stdarg.h>
// 函数4:计算可变参数列表的和
int variableSum(int count, ...) {
    va_list args;
    va_start(args, count);
    int sum = 0;
    for (int i = 0; i < count; i++) {
        sum += va_arg(args, int);
    }
    va_end(args);
    return sum;
}
int main() {
    int result = variableSum(5, 1, 2, 3, 4, 5);
    printf("可变参数求和结果为: %d\n", result);
    return 0;
}

提供了四种不同的求和函数实现方式:

  1. 数组索引方式
  2. 指针遍历方式
  3. 递归方式
  4. 可变参数方式

每种方法都有其适用场景:

  • 数组索引方式最直观易懂
  • 指针方式效率更高
  • 递归方式简洁但可能栈溢出
  • 可变参数方式灵活但类型不安全

你可以根据具体需求选择合适的实现方式。

c语言求和 编写两个函数
(图片来源网络,侵删)
-- 展开阅读全文 --
头像
编译器构造C语言描述PDF如何系统学习?
« 上一篇 今天
织梦免费机械网站源码安全可靠吗?
下一篇 » 今天

相关文章

取消
微信二维码
支付宝二维码

目录[+]