最大值问题。为一维数组输入10个整数,输出其最大值及其在数组中的位置。用c语言
时间: 2024-05-07 10:23:12 浏览: 151
以下是用C语言实现的代码:
```c
#include <stdio.h>
int main() {
int arr[10];
int max = 0; // 最大值
int pos = 0; // 最大值的位置
// 输入10个整数
printf("请输入10个整数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
// 查找最大值及其位置
for (int i = 0; i < 10; i++) {
if (arr[i] > max) {
max = arr[i];
pos = i;
}
}
// 输出最大值及其位置
printf("最大值为:%d,位置为:%d\n", max, pos);
return 0;
}
```
注意,这里假设输入的10个整数都是正整数。如果输入中可能有负数,那么初始的最大值max应该设置为数组中的第一个元素,而不是0。
相关问题
C语言:编写一个程序,实现将一维数组中的最大值和最小值对换位置。主函数中为一维数组输入10哥整数,并输出结果
好的,以下是您所需的 C 代码:
```c
#include <stdio.h>
void swap(int *a, int *b) { // 交换函数
int temp = *a;
*a = *b;
*b = temp;
}
void swapMaxMin(int arr[], int n) { // 交换最大值和最小值位置的函数
int maxIndex = 0, minIndex = 0;
for (int i = 1; i < n; i++) {
if (arr[i] > arr[maxIndex]) {
maxIndex = i;
}
if (arr[i] < arr[minIndex]) {
minIndex = i;
}
}
swap(&arr[maxIndex], &arr[minIndex]);
}
int main() {
int arr[10];
printf("请输入10个整数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
swapMaxMin(arr, 10);
printf("交换后的数组为:\n");
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
注意:由于题目要求是将最大值和最小值对换位置,因此我们需要先找到数组中的最大值和最小值的下标,然后再用一个交换函数来实现它们的位置对换。
c语言编程实现,从键盘输入10个整数存入一维数组中,输出其最大值及其在数组中的位置。
在C语言中,你可以通过以下步骤来实现这个功能:
1. 首先,你需要定义一个一维数组来存储这10个整数,并请求用户输入数据。
2. 然后,初始化一个变量作为当前的最大值,并设置它的初始值为数组的第一个元素。
3. 使用一个for循环遍历整个数组,比较每个元素与当前最大值,如果发现更大的数,更新最大值并记录下该元素的索引。
4. 当循环结束后,你会拥有最大值以及对应的索引。
以下是一个简单的示例代码:
```c
#include <stdio.h>
int main() {
int array[10];
int max_value = array[0]; // 初始化最大值为第一个元素
int max_index = 0; // 初始化最大值的位置
printf("请输入10个整数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &array[i]);
if (array[i] > max_value) { // 如果找到更大值
max_value = array[i];
max_index = i; // 更新最大值的索引
}
}
printf("最大值是:%d,它位于数组的第 %d 位.\n", max_value, max_index + 1); // 加1是因为索引是从0开始的
return 0;
}
```
阅读全文