输入一个正整数n(1<n≤10),再输入n个整数,将他们存入数组a中。c语言输出最大值和它对应的下标,并将最大值与最后一个数交换,输出交换后的n个数。
时间: 2024-02-12 08:03:55 浏览: 98
可以按照以下步骤实现:
1. 定义一个长度为 n 的整型数组 a。
2. 用循环读入 n 个整数,并将它们存入数组 a 中。
3. 定义变量 max 和 max_index,分别表示数组中的最大值和最大值所在的下标,初始值分别为数组第一个元素和 0。
4. 用循环遍历数组 a,如果当前元素比 max 大,则更新 max 和 max_index 的值。
5. 输出最大值和它对应的下标。
6. 将最后一个数与最大值所在的位置交换,可以使用一个中间变量 temp。
7. 输出交换后的 n 个数。
下面是一份实现代码,供参考:
```c
#include <stdio.h>
int main() {
int n, i, max, max_index, temp;
int a[10];
printf("Enter n: ");
scanf("%d", &n);
printf("Enter %d integers: ", n);
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
max = a[0];
max_index = 0;
for (i = 1; i < n; i++) {
if (a[i] > max) {
max = a[i];
max_index = i;
}
}
printf("The maximum value is %d, at index %d.\n", max, max_index);
// 交换最大值和最后一个数
temp = a[n-1];
a[n-1] = max;
a[max_index] = temp;
printf("After swapping, the numbers are: ");
for (i = 0; i < n; i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
```
需要注意的是,这份代码并没有对输入的数据进行错误处理,比如输入的 n 不在要求的范围内或者输入的数据不是整数等情况。在实际应用中,需要对这些情况进行处理以保证程序的稳定性和正确性。
阅读全文