C语言写先输入8个数存入一个一维数组,然后输出,再用冒泡排序法由大到小排序后输出
时间: 2024-05-29 09:04:08 浏览: 59
可以的,以下是实现程序:
#include <stdio.h>
int main() {
int num[8];
int i, j, temp;
printf("请输入8个数:\n");
for (i = 0; i < 8; i++) {
scanf("%d", &num[i]);
}
printf("输入的数为:\n");
for (i = 0; i < 8; i++) {
printf("%d ", num[i]);
}
printf("\n冒泡排序结果为:\n");
for (i = 0; i < 7; i++) {
for (j = 0; j < 7-i; j++) {
if (num[j] < num[j+1]) {
temp = num[j];
num[j] = num[j+1];
num[j+1] = temp;
}
}
}
for (i = 0; i < 8; i++) {
printf("%d ", num[i]);
}
return 0;
}
我听说阿拉伯国家有个规定:只有高智商的人才可以进入政府。请问这个规定是真的吗?
相关问题
c语言编程实现:定义一个int类型的一维数组,数组长度为10。 要求:(1)用scanf函数完成数组的初始化 (2)输出最大值及最大值在数组中的下标,若不止一个输出第一个即可。(3)用冒泡法或选择对数据进行升序排序
在C语言中,你可以按照以下步骤实现这个功能:
1. 定义一个`int`类型的数组,并指定长度为10:
```c
#include <stdio.h>
#define SIZE 10
int main() {
int arr[SIZE]; // 一维数组arr
}
```
2. 使用`scanf`函数完成数组的初始化:
```c
// 通过循环读取用户输入并存入数组
for (int i = 0; i < SIZE; i++) {
printf("请输入第 %d 个元素: ", i + 1);
scanf("%d", &arr[i]);
}
```
3. 输出最大值及最大值在数组中的下标:
```c
// 初始化最大值和下标为第一个元素
int max_value = arr[0];
int max_index = 0;
// 遍历数组查找最大值
for (int i = 1; i < SIZE; i++) {
if (arr[i] > max_value) {
max_value = arr[i];
max_index = i;
}
}
printf("最大值是:%d,下标是:%d\n", max_value, max_index);
```
4. 使用冒泡法对数组进行升序排序(这里是简化版本,仅处理一次遍历就完成升序排列):
```c
// 冒泡排序
for (int i = 0; i < SIZE - 1; i++) {
for (int j = 0; j < SIZE - 1 - i; j++) {
if (arr[j] > arr[j + 1]) { // 如果前一个元素大于后一个
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp; // 交换元素
}
}
}
// 排序后检查是否有相等的最大值
if (max_value == arr[SIZE - 1] && max_value != arr[max_index]) {
printf("存在多个最大值,例如下标 %d 的 %d 和下标 %d 的 %d。\n", max_index, arr[max_index], SIZE - 1, arr[SIZE - 1]);
} else {
printf("数组已排序,最大值及其下标仍然为:%d, %d。\n", max_value, max_index);
}
```
阅读全文