任务1: 定义一个函数,它的参数是int数组,它的返回值是数组中的所有元素的和。
int getArrSum(int arr[], int len){ }
任务2: 定义一个函数,它的参数是int数组,它的返回值是数组中的所有元素的最大值。
int getArrMax(int arr[], int len){ }
任务3: 定义一个函数,它的参数是int数组,和要查找的值。如果在这个数组中,能找到,则返回第一个找到的值的下标; 如果找不到,则返回-1
总体:
#include <stdio.h>
/*
任务1:求int数组所有元素的和
参数:arr - 待求和的数组;len - 数组实际长度
返回值:数组元素总和
*/
int getArrSum(int arr[], int len) {
int sum = 0; // 初始化总和为0
for (int i = 0; i < len; i++) {
sum += arr[i]; // 累加每个数组元素
}
return sum; // 返回总和
}
/*
任务2:求int数组所有元素的最大值
参数:arr - 待查找最大值的数组;len - 数组实际长度
返回值:数组元素的最大值
*/
int getArrMax(int arr[], int len) {
int max = arr[0]; // 初始化最大值为数组首个元素
for (int i = 1; i < len; i++) {
if (arr[i] > max) { // 遍历比较,更新最大值
max = arr[i];
}
}
return max; // 返回最大值
}
/*
任务3:查找数组中指定值的首个下标
参数:arr - 待查找的数组;len - 数组实际长度;val - 要查找的目标值
返回值:找到则返回首个下标,未找到返回-1
*/
int findArrValue(int arr[], int len, int val) {
for (int i = 0; i < len; i++) {
if (arr[i] == val) { // 找到匹配元素,立即返回下标
return i;
}
}
return -1; // 未找到目标值,返回-1
}
// 主函数:测试三个任务的函数功能
int main() {
int testArr[5] = {1, 2, 3, 4, 5}; // 测试数组
int arrLength = 5; // 数组长度
int targetValue = 3; // 要查找的目标值
// 调用任务1函数并输出结果
int totalSum = getArrSum(testArr, arrLength);
printf("数组元素总和:%d\n", totalSum);
// 调用任务2函数并输出结果
int maxNum = getArrMax(testArr, arrLength);
printf("数组元素最大值:%d\n", maxNum);
// 调用任务3函数并输出结果
int targetIndex = findArrValue(testArr, arrLength, targetValue);
if (targetIndex != -1) {
printf("元素%d的首个下标:%d\n", targetValue, targetIndex);
} else {
printf("未找到元素%d\n", targetValue);
}
return 0;
}
结果:
任务1:
#include <stdio.h>
int getArrSum(int arr[], int len) {
int sum = 0; // 初始化总和为0
for (int i = 0; i < len; i++) {
sum += arr[i]; // 累加每个数组元素
}
return sum; // 返回总和
}
任务2:
#include <stdio.h>
int getArrMax(int arr[], int len) {
int max = arr[0]; // 初始化最大值为数组首个元素
for (int i = 1; i < len; i++) {
if (arr[i] > max) { // 遍历比较,更新最大值
max = arr[i];
}
}
return max; // 返回最大值
}
任务3:
#include <stdio.h>
int findArrValue(int arr[], int len, int val) {
for (int i = 0; i < len; i++) {
if (arr[i] == val) { // 找到匹配元素,立即返回下标
return i;
}
}
return -1; // 未找到目标值,返回-1
}