问题描述 Give you some integers, your task is to sort these number ascending (升序). You should know how easy the problem is now! Good luck! 输入描述 Input contains multiple test cases. The first line of the input is a single integer T which is the number of test cases. T test cases follow. Each test case contains an integer N (1<=N<=20) and then N integers follow in the same line. It is guarantied that all integers are in the range of 32-int. 输出描述 For each case, print the sorting result, and one line one case. 样例输入 2 3 2 1 3 9 1 4 7 2 5 8 3 6 9 样例输出 1 2 3 1 2 3 4 5 6 7 8 9用C语言怎么编写
时间: 2023-12-01 10:03:36 浏览: 97
以下是用C语言编写的代码,实现对多组输入数据进行排序并输出结果:
```
#include <stdio.h>
#include <stdlib.h>
int cmp(const void *a, const void *b) {
return (*(int *)a - *(int *)b);
}
int main() {
int T, N, i, j;
scanf("%d", &T);
while (T--) {
scanf("%d", &N);
int a[N];
for (i = 0; i < N; i++) {
scanf("%d", &a[i]);
}
qsort(a, N, sizeof(int), cmp);
for (i = 0; i < N; i++) {
printf("%d ", a[i]);
}
printf("\n");
}
return 0;
}
```
代码解析:
1. 首先读入测试数据组数T;
2. 对于每一组测试数据,先读入该组数据中数字的个数N,然后读入N个整数存放在数组a中;
3. 调用C标准库中的qsort函数对数组a进行升序排序,排序使用到了一个自定义的比较函数cmp;
4. 最后输出排序后的结果。
其中自定义的比较函数cmp是用来告诉qsort函数如何进行排序的,该函数的实现方式是比较两个数的大小,如果a小于b,返回负数;如果a等于b,返回0;如果a大于b,返回正数。在本题中,我们只需要比较整数的大小,所以可以直接使用a-b的方式进行比较。
阅读全文