一、设计c程序, 包含如下功能 (各功能分别以函数实现) 功能一: 1) 交换两个整型变量的值。 功能二: 2) 返回一维整型数组第i到第j个元素的和。 功能三: 3) 判定给定数组是否已排好序。
时间: 2024-09-08 22:03:14 浏览: 29
当然可以,以下是包含这三个功能的简单 C 程序示例:
```c
#include <stdio.h>
// 功能一:交换两个整型变量的值
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
// 功能二:返回一维整型数组第i到j个元素的和
int sum_array(int arr[], int i, int j) {
int total = 0;
for (int k = i; k <= j; k++) {
total += arr[k];
}
return total;
}
// 功能三:判断给定数组是否已排好序
int is_sorted(int arr[], int size, bool (*compare)(const void*, const void*)) {
if (size <= 1 || compare(arr, arr + 1) == 0) {
return 1; // 已排序
}
for (int i = 1; i < size; i++) {
if (compare(arr + i, arr + i - 1) != 0) {
return 0; // 未排序
}
}
return 1;
}
// 使用样例:
int main() {
int a = 5, b = 10;
printf("Before swapping: a=%d, b=%d\n", a, b);
swap(&a, &b); // 交换 a 和 b 的值
printf("After swapping: a=%d, b=%d\n", a, b);
int array[] = {1, 2, 3, 4, 5};
int start = 1, end = 3;
int sum = sum_array(array, start, end);
printf("Sum of elements from %d to %d: %d\n", start, end, sum);
int isSorted = is_sorted(array, sizeof(array)/sizeof(array[0]), strcmp); // 如果数组按升序排列,strcmp应始终小于等于0
printf("Array is sorted? %s\n", isSorted ? "Yes" : "No");
return 0;
}
```
这个程序定义了三个函数,`swap()`用于交换两个整数,`sum_array()`计算数组部分和,而`is_sorted()`则使用自定义比较函数判断数组是否有序。在`main()`函数中展示了如何调用这些函数。