1.编写程序,将一个含10个元素的一维数组按从小到大的顺序输出.

如题所述

#include <stdio.h>

int main(int argc, char *argv[])
{
char data[10] = {3,4,1,9,0,8,5,2,7,6};
int i =0,j=0,m = 0,k=0;

for(i = 8,k=8; i>=0; i--)
{
for(j = 0;j<=k;j++)
{
if(data[j]>data[j+1])
{
data[j] += data[j+1];
data[j+1] = data[j] - data[j+1];
data[j] = data[j] - data[j+1];
m = j;
printf("m = %d\n",m);
}
}
printf("\n");
k = m;
}

for(i = 0; i <= 9;i++)
{
printf("%d\n",data[i]);
}
printf("Hello C-Free!\n");
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-29
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

static void quick_sort(int arry[], int low, int hight);

int main(int argc, char *argv[])
{
int i, arry[10];

printf("please input ten number:");

for(i = 0; i < 10; i++)
{
scanf("%d", &arry[i]);
}

printf("\n");

quick_sort(arry, 0, 10);

for(i = 0; i < 10; i++)
{
printf("%d ",arry[i]);
}

printf("\n");
return 0;
}

void quick_sort(int arry[], int low, int hight)
{
int temp;
int i, j;

if (low >= hight) return;

i = low;
j = hight -1;

temp = arry[i];

while (i < j)
{
while (arry[j] > temp && i < j) j--;

if (i < j)
arry[i++] = arry[j];

while (arry[i] < temp && i < j) i++;

if (i < j)
arry[j--] = arry[i];
}

arry[i] = temp;

quick_sort(arry, low, j);
quick_sort(arry, ++i, hight);

}