1119: 一维数组排序 C语言

1119: 一维数组排序
时间限制: 1 Sec 内存限制: 128 MB
提交: 13822 解决: 9071
[状态] [讨论版] [提交] [命题人:admin]
题目描述
对一维数组按照从小到大的顺序排序。程序定义函数sort()来实现数组a的排序。函数原型如下:
void sort(int a[], int n);
数组元素的输出调用PrintArr()。
输入
第一行输入一个整数n(1<=n<=10),表示数组有n个整数;第二行输入n个整数。
输出
输出占一行。对这n个整数数按照从小到大的顺序输出,数据之间用一个空格隔开。
样例输入 Copy
6
6 5 1 2 3 4
样例输出 Copy
1 2 3 4 5 6

#include <stdio.h>
#include <stdlib.h>

#define N 10

//声明函数原型
void sort(int a[], int n);
void PrintArr(int a[], int n);

//按从小到大的顺序对数组进行排序 
int main() {
    
    
	int n, a[N] = {
    
    0}, i;
	//输入n,表示数组有n个整数
	scanf("%d", &n);
	for(i = 0; i < n; i++){
    
    
		//输入n个整数,存入数组a[i]
		scanf("%d", &a[i]); 
	} 
	//调用函数进行排序
	sort(a, n);
	//调用函数输出数组元素
	PrintArr(a, n);
	 
	return 0;
}

//使用比较交换的方法对数组进行排序
void sort(int a[], int n){
    
    
	int i, j, t;
	for(i = 0; i < n - 1; i++){
    
    
		for(j = i +1; j < n; j++){
    
    
			if(a[i] > a[j]){
    
    
				//交换位置 
				t = a[i];
				a[i] = a[j];
				a[j] = t;
			}
		}
	}
}

//输出数组元素
void PrintArr(int a[], int n){
    
    
	int i;
	for(i = 0; i < n; i++){
    
    
		printf("%d ", a[i]);
	} 
} 

猜你喜欢

转载自blog.csdn.net/m0_45306379/article/details/120926068
今日推荐