设计c程序,包含如下功能(各功能分别以函数实现),将代码(包括各函数及main、时间复杂度)、运行结果截图(含学号、姓名)上传: 功能一: 1)交换两个整型变量的值。 功能二: 2) 返回一维整型数组第到第j个元素的 和。 功能三: 3) 判定给定数组是否已排好序。
时间: 2024-09-06 19:05:29 浏览: 50
在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 n, int order) {
if (order == 1) { // 升序排序
for (int i = 1; i < n; i++) {
if (arr[i] < arr[i - 1]) {
return 0; // 如果有违反升序的情况,返回0表示未排序
}
}
return 1; // 全部有序则返回1
} else if (order == 2) { // 降序排序
for (int i = 1; i < n; i++) {
if (arr[i] > arr[i - 1]) {
return 0;
}
}
return 1;
}
else {
printf("Error: Invalid sort order.\n");
return -1; // 非法顺序标记错误
}
}
int main() {
int arr[] = {5, 3, 8, 1, 9};
int size = sizeof(arr) / sizeof(arr[0]);
int num1 = 5, num2 = 3;
printf("Before swapping:\nnum1: %d, num2: %d\n", num1, num2);
swap(&num1, &num2);
printf("After swapping:\nnum1: %d, num2: %d\n", num1, num2);
int sum = sum_array(arr, 0, 3);
printf("Sum of elements from index 0 to 3: %d\n", sum);
int sorted = is_sorted(arr, size, 1); // 升序判断
if (sorted)
printf("Array is sorted in ascending order.\n");
else
printf("Array is not sorted in ascending order.\n");
sorted = is_sorted(arr, size, 2); // 降序判断
if (sorted)
printf("Array is sorted in descending order.\n");
else
printf("Array is not sorted in descending order.\n");
return 0;
}
```
这个程序包含了三个功能的实现,并在`main()`函数中进行了演示。注意,为了简化起见,`is_sorted`函数只支持升序和降序排序,实际应用中可能需要更通用的版本。
阅读全文