用C语言输入一维数组,计算最大差和最大和
时间: 2024-02-25 09:56:37 浏览: 64
好的,我来为您解答。
首先,让我们来看一下如何用 C 语言输入一维数组。可以使用 for 循环来输入数组的每个元素,如下所示:
```c
#include <stdio.h>
int main() {
int n;
printf("请输入数组的长度:");
scanf("%d", &n);
int arr[n];
printf("请输入数组的元素:");
for (int i=0; i<n; i++) {
scanf("%d", &arr[i]);
}
// TODO: 计算最大差和最大和
return 0;
}
```
接下来,让我们来计算最大差和最大和。
最大差可以通过求最小值和最大值的差来计算。代码如下:
```c
int maxDiff = arr[1] - arr[0];
for (int i=0; i<n; i++) {
for (int j=i+1; j<n; j++) {
if (arr[j] - arr[i] > maxDiff) {
maxDiff = arr[j] - arr[i];
}
}
}
printf("最大差为:%d\n", maxDiff);
```
最大和可以通过对数组进行排序,然后取前 k 个数的和来计算。代码如下:
```c
// 冒泡排序
for (int i=0; i<n-1; i++) {
for (int j=0; j<n-1-i; j++) {
if (arr[j] > arr[j+1]) {
int tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
int k;
printf("请输入要求和的元素个数:");
scanf("%d", &k);
int maxSum = 0;
for (int i=n-1; i>=n-k; i--) {
maxSum += arr[i];
}
printf("最大和为:%d\n", maxSum);
```
这样,我们就完成了用 C 语言输入一维数组,计算最大差和最大和的任务。
阅读全文