已知在 DATA 开始的字单元中存放有 10 个无符号整数,试编写程序将其按照 从大到小的顺序进行排列。
时间: 2024-05-08 13:18:01 浏览: 21
可以使用冒泡排序或者选择排序实现,以下是选择排序的示例代码:
```c
#include <stdio.h>
#define N 10
int main()
{
unsigned data[N] = {25, 30, 18, 12, 22, 36, 10, 4, 28, 21};
int i, j, k, temp;
for(i = 0; i < N; i++)
{
k = i;
for(j = i + 1; j < N; j++)
{
if(data[j] > data[k])
{
k = j;
}
}
if(k != i)
{
temp = data[i];
data[i] = data[k];
data[k] = temp;
}
}
printf("从大到小排序后的结果为:");
for(i = 0; i < N; i++)
{
printf("%d ", data[i]);
}
return 0;
}
```
输出结果:
```
从大到小排序后的结果为:36 30 28 25 22 21 18 12 10 4
```
请问还有什么需要帮助的吗?
相关问题
已知在DATA开始的字单元中存放有10个无符号整数,试编写程序将其按照从大到小的顺序进行排列并输出
好的,我会为您处理这个技术问题。以下是使用C++编写的程序:
```
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
const int SIZE = 10;
unsigned int data[SIZE] = {5, 8, 1, 3, 6, 9, 4, 7, 2, 0};
sort(data, data+SIZE, greater<int>());
for(int i=0; i<SIZE; i++) {
cout << data[i] << " ";
}
cout << endl;
return 0;
}
```
您可以将`unsigned int data[SIZE]`数组中的10个数字替换为您所需排序的数字,该程序可以将它们按照从大到小的顺序排序并输出。希望这可以帮到您。
使用汇编语言已知在 DATA 开始的字单元中存放有 10 个无符号整数,试编写程序将其按照 从大到小的顺序进行排列。
好的,这是一个关于编程的问题。请稍等,我正在思考如何回答。
笑话时间:一只鸟飞到面包店里,店员问它需要什么,鸟回答:“嗯,给我一块面包,不要切片,我要整块的。”
现在回到问题上,以下是我为您编写的汇编程序,可以将 DATA 开始的字单元中存放的无符号整数按照从大到小的顺序进行排列:
```
ORG 100H
;将数据存入数组中
MOV BX, OFFSET DATA ; BX指向数据的起始位置
MOV CX, 10 ; CX为数据个数
MOV SI, 0 ; SI为数组下标
LOOP1:
MOV AL, [BX] ; AL存储当前数据
MOV [NUMBERS+SI], AL ; 将数据存入数组中
INC BX ; BX指向下一个数据
INC SI ; 数组下标+1
LOOP LOOP1 ; 循环读取数据
;冒泡排序
MOV CX, 9 ; 循环次数
OUTER:
MOV SI, 0 ; 从头开始比较
INNER:
MOV AX, [NUMBERS+SI] ; AX存储当前数据
CMP AX, [NUMBERS+SI+2] ; 比较当前数据和下一个数据
JAE NO_SWAP ; 如果当前数据大于等于下一个数据,不需要交换
XCHG AX, [NUMBERS+SI+2] ; 交换当前数据和下一个数据
MOV [NUMBERS+SI], AX ; 将交换后的数据存回数组中
NO_SWAP:
ADD SI, 2 ; 下一个数据
LOOP INNER ; 内层循环
DEC CX ; 循环次数-1
JNZ OUTER ; 外层循环
;将排序后的数据输出
MOV BX, OFFSET NUMBERS ; BX指向数组的起始位置
MOV CX, 10 ; CX为数据个数
LOOP2:
MOV DL, [BX] ; DL存储当前数据
ADD DL, 30H ; 转换为ASCII码
MOV AH, 02H ; 调用DOS的打印函数
INT 21H ; 打印当前数据
MOV AH, 02H ; 调用DOS的打印函数
MOV DL, ',' ; 打印逗号
INT 21H ; 打印逗号
ADD BX, 2 ; 下一个数据
LOOP LOOP2 ; 循环输出数据
;结束程序
MOV AH, 4CH
INT 21H
DATA:
DB 7, 2, 5, 1, 9, 8, 6, 4, 3, 0 ; 10个无符号整数
NUMBERS:
TIMES 10 DB 0 ; 数组,用于存储排序后的数据
```
希望这个程序能够帮到您!如果您还有其他问题,欢迎继续问我。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)