用选择法对10个整数排序。10个整数用scanf函数输入。

程序提示:
输入10个整数存放到数组a的a[1]到a[10]中
输出10个数
for(i=1;i<10;i++)
{
min=i;
for(j=i+1;j<=10;j++)
if(a[min]>a[j]) min=j;
交换a[i]与a[min]
}
输出排序后的10个数

希望按要求做谢谢O(∩_∩)O~

第1个回答  2012-04-19
#include <stdio.h>
void sort(int* a, int n)
{
int t;
for (int i = 0; i < n; i++)
{
for (int j = i+1; j < n; j++)
{
if(*(a+i) > *(a+j))
{
t = *(a+i);
*(a+i) = *(a+j);
*(a+j) = t;
}
}
}
}

void output(int* a,int n)
{
for (int i = 0; i < n; i++)
printf("%d ",*(a+i));
printf("\n");
}
void input(int* a,int n)
{
for (int i = 0; i < n; i++)
scanf("%d",(a+i));
}
int main()
{
int a[10];
input(a,10);
sort(a,10);
output(a,10);
return 0;
}
第2个回答  2009-12-16
main()
{
int i,a[10];
printf("Please input the number:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
printf("\na[%d]=%d",i,a[i]);
}
在tc环境下运行一下,看看是不是你想要的结果。
第3个回答  2012-05-30
/*

*/
# include <stdio.h>

//输入整型数据
void input_Num(int *a);
//降序排列并输出
void sort_and_show(int * a);
//输出数组
void show(int * a);

int main(void)
{
int a[10];
printf(".......你的信息.......\n");

printf("请输入10个整型数据:\n");
input_Num(a);

printf("降序排列并输出\n");
sort_and_show(a);

return 0;
}

void input_Num(int *a)
{
int i;
for (i=0; i<10; ++i)
{
scanf("%d",&a[i]);
}

}

void sort_and_show(int * a)
{
int i,j;
int temp;
for (i=0; i<10-1; ++i)
{
for (j=0; j<10-i-1; ++j)
{
if (a[j] < a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
//排序后输出
show(a);
return;
}

void show(int * a)
{
int i;
for (i=0; i<10; ++i)
{
printf("%d ",a[i]);
}
printf("\n");

return;
}

/*
输出结果:
----
.......你的信息.......
请输入10个整型数据:
78 88 99 6 5 2 4 44 55 20
降序排列并输出
99 88 78 55 44 20 6 5 4 2
------
*/
相似回答