题解 | C语言解法
输入整型数组和排序标识,对其元素按照升序或降序进行排序
http://www.nowcoder.com/practice/dd0c6b26c9e541f5b935047ff4156309
#include<stdio.h>
int main()
{
int n,i,j,t;
int a[1000];
int val;
int fal=0;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for (j = 0; j < n - 1; j++) /*用冒泡排序先进行升序排序*/
{
for (i = 0; i < n - 1 - j; i++)
if (a[i] > a[i + 1])
{
t = a[i];
a[i] = a[i + 1];
a[i + 1] = t;
fal = 1; /*如果在n次循环结束前已经排好,则跳出循环,进行优化*/
}
if (fal == 0)
break;
}
scanf("%d",&t);
if(t==0) /*t==0就升序输出*/
for(i=0;i<n;i++)
printf("%d ",a[i]);
else /*t==1就降序输出*/
for(i=n-1;i>=0;i--)
printf("%d ",a[i]);
return 0;
}
int main()
{
int n,i,j,t;
int a[1000];
int val;
int fal=0;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for (j = 0; j < n - 1; j++) /*用冒泡排序先进行升序排序*/
{
for (i = 0; i < n - 1 - j; i++)
if (a[i] > a[i + 1])
{
t = a[i];
a[i] = a[i + 1];
a[i + 1] = t;
fal = 1; /*如果在n次循环结束前已经排好,则跳出循环,进行优化*/
}
if (fal == 0)
break;
}
scanf("%d",&t);
if(t==0) /*t==0就升序输出*/
for(i=0;i<n;i++)
printf("%d ",a[i]);
else /*t==1就降序输出*/
for(i=n-1;i>=0;i--)
printf("%d ",a[i]);
return 0;
}