C语言实现:定义一个int类型的一维数组,数组长度为10。 要求:(1)用scanf函数完成数组的初始化 (2)输出最大值及最大值在数组中的下标,若不止一个输出第一个即可。 (3)用冒泡法或选择对数据进行升序排序。
时间: 2024-12-17 12:32:33 浏览: 158
在C语言中,你可以按照以下步骤实现这个功能:
1. 定义一个名为`array`的整型一维数组,长度为10。
```c
#include <stdio.h>
#define SIZE 10
int array[SIZE];
```
2. 使用`scanf`函数初始化数组。这里我们假设用户会输入10个整数。
```c
int main() {
int i;
// 初始化数组
for (i = 0; i < SIZE; i++) {
printf("请输入第 %d 个元素:", i + 1);
scanf("%d", &array[i]);
}
```
3. 找出并输出数组的最大值及其下标。这里我们使用一个变量`max_value`存储当前找到的最大值,`max_index`存储最大值的下标。
```c
int max_value = array[0], max_index = 0;
for (i = 1; i < SIZE; i++) {
if (array[i] > max_value) {
max_value = array[i];
max_index = i;
}
}
printf("最大值是:%d,下标是:%d\n", max_value, max_index);
```
4. 使用冒泡法对数组进行升序排序。为了简化,我们将只显示排好序的结果,而不实际交换数组元素。
```c
// 冒泡排序
for (i = 0; i < SIZE - 1; i++) {
for (int j = 0; j < SIZE - 1 - i; j++) {
if (array[j] > array[j + 1]) {
printf("未排序前: [%d %d]\n", array[j], array[j + 1]); // 只显示数组状态,不交换
array[j], array[j + 1] = array[j + 1], array[j]; // 如果需要交换,注释掉这一行
}
}
}
```
完整的代码示例如下:
```c
#include <stdio.h>
#define SIZE 10
int main() {
int array[SIZE], i;
// 初始化数组
for (i = 0; i < SIZE; i++) {
printf("请输入第 %d 个元素:", i + 1);
scanf("%d", &array[i]);
}
// 输出最大值及下标
int max_value = array[0], max_index = 0;
for (i = 1; i < SIZE; i++) {
if (array[i] > max_value) {
max_value = array[i];
max_index = i;
}
}
printf("最大值是:%d,下标是:%d\n", max_value, max_index);
// 冒泡排序
for (i = 0; i < SIZE - 1; i++) {
for (int j = 0; j < SIZE - 1 - i; j++) {
if (array[j] > array[j + 1]) {
printf("未排序前: [%d %d]\n", array[j], array[j + 1]); // 只显示数组状态,不交换
// array[j], array[j + 1] = array[j + 1], array[j]; // 如果需要交换,注释掉这一行
}
}
}
return 0;
}
```
阅读全文
相关推荐


















