用C语言输入一个正整数 n ( I < n ≤10),再输入 n 个整数,将最大值与第一个数交换,然后输出交换后的 n 个数。
时间: 2024-05-16 08:16:17 浏览: 13
下面是用C语言实现的程序:
```c
#include <stdio.h>
int main()
{
int n, max, index, temp;
int a[10];
printf("请输入正整数 n (I < n <= 10):");
scanf("%d", &n);
printf("请输入 %d 个整数:", n);
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
max = a[0];
index = 0;
for (int i = 1; i < n; i++) {
if (a[i] > max) {
max = a[i];
index = i;
}
}
temp = a[0];
a[0] = max;
a[index] = temp;
printf("交换后的 %d 个数为:", n);
for (int i = 0; i < n; i++) {
printf("%d ", a[i]);
}
return 0;
}
```
程序运行结果如下:
```
请输入正整数 n (I < n <= 10):5
请输入 5 个整数:1 3 5 4 2
交换后的 5 个数为:5 3 1 4 2
```
相关问题
C语言输入一个正整数n(1<n≤10),再输入n个整数,将最大值与第一个数交换,然后输出交换后的n个数。
以下是代码实现:
```c
#include <stdio.h>
int main() {
int n, max_index = 0;
scanf("%d", &n);
int nums[n];
for (int i = 0; i < n; i++) {
scanf("%d", &nums[i]);
if (nums[i] > nums[max_index]) {
max_index = i;
}
}
int temp = nums[0];
nums[0] = nums[max_index];
nums[max_index] = temp;
for (int i = 0; i < n; i++) {
printf("%d ", nums[i]);
}
return 0;
}
```
首先读入正整数 `n`,然后定义一个长度为 `n` 的数组 `nums` 存储后面的 `n` 个整数。在输入过程中,记录最大值的下标 `max_index`,若当前输入的数比最大值还大,则更新 `max_index`。
接着将最大值与第一个数交换,这里我们使用一个中间变量 `temp` 来实现。最后输出交换后的 `n` 个数即可。
求最大值及其下标c语言:输入一个正整数n(1<n≤10),再输入n个整数,将他们从大到小排序后输出
可以使用数组来存储输入的n个整数,然后使用冒泡排序算法将其从大到小排序。最后输出排序后的数组的第一个元素,即为最大值,以及它的下标。具体实现如下:
```c
#include <stdio.h>
int main() {
int n, i, j;
printf("请输入正整数n:");
scanf("%d", &n);
int arr[n];
printf("请输入%d个整数:", n);
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
// 冒泡排序
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (arr[j] < arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
// 输出最大值及其下标
printf("最大值为%d,下标为%d\n", arr[0], 0);
return 0;
}
```
需要注意的是,下标从0开始计算。