本周未怎么刷题,白白浪费一周时间!就做了一个简单的简单排序。
问题 : 简单排序
输入数据有多组,第一行是测试数据的组数T,接下的T行中,每行表示一组测试数据,每组测试数据的第一个数字为N(1<=N<=1000),接下来是N个整数。本题中,所有的整数都在32位之内。
分析
主要要求就是以上有颜色字
1 多组所以就会想到循环orwhile(scanf()!=EOF)
样例输入
2
3 2 1 3
4 1 3 4 2
根据样例输出以及题意我选择的是使用for循环输出多组,while跟do while以及while(scanf()!=EOF)也可以尝试。
2 样例输出
1 2 3
1 2 3 4
根据样例输出可以知道输出使用了排序,c语言有十大排序算法,这里小白使用的是最简单冒泡排序。
代码如下
#include<stdio.h>
int main ()
{
int b;
scanf("%d",&b);
for(int c=0;c<b;c++){
int a[1000];//要排序的数组
int n;
scanf("%d",&n);
int i, j,temp;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i = 0;i < n;i++)
{
for(j = 0;j < n-i-1;j++)
{
if(a[j]>a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
for(i = 0;i < n;i++)
{
printf("%d ",a[i]);
}
printf("\n");
}
}
这题还是比较简单的,可以锻炼基础。只要思路清晰即可,细节也要注意,就比如说最后的换行。