用C语言输入一个正整数 n ( I < n ≤10),再输入 n 个整数,将最大值与第一个数交换,然后输出交换后的 n 个数。
时间: 2024-05-16 12:16:17 浏览: 60
下面是用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个整数,将他们存入数组a中。输出最大值和它对应的下标,并将最大值与最后一个数交换,输出交换后的n个数。
这个问题我们已经回答过了,以下是 C 语言的代码实现:
```c
#include <stdio.h>
int main()
{
int n, a[10], max = 0, index = 0;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
if (a[i] > max) {
max = a[i];
index = i;
}
}
printf("最大值为: %d,对应下标为: %d\n", max, index);
int temp = a[n-1];
a[n-1] = max;
a[index] = temp;
printf("交换后的数组为: ");
for (int i = 0; i < n; i++) {
printf("%d ", a[i]);
}
return 0;
}
```
代码中,首先读入一个正整数 n,然后读入 n 个整数,将它们存入数组 a 中。在存储的过程中,顺便找到最大值和它对应的下标。
然后,将最大值与数组的最后一个数交换,输出交换后的数组。
注意,题目中要求输入的正整数 n 的范围是 1<n≤10,因此在代码中定义数组 a 的长度为 10。
阅读全文