读书人

【有关问题】一个小程序中

发布时间: 2013-04-02 12:35:26 作者: rapoo

【问题】一个小程序中
用选择法对10个整数按由大到小排列.
#include <stdio.h>
int main()
{
void sort (int x[], int n);
int arr[10];
int i=0, *p;


printf("输入10个数字 : \n");
p = arr;
for (i=0; i<10; i++)
{
scanf ("%d", p++);
}
p=arr;
sort (p,10);

printf("\n按由大到小排序后 : \n");
for (p=arr,i=0; i<10; i++)
{
printf("%d ", *p);
p++;
}
printf("\n");
}



void sort (int x[], int n)
{
int i=0, j=0, max=0, t=0;

for (i=0; i<n-1; i++)
{
max = i; //假设数组的首位元素为最大值.
for (j=i+1; j<n; j++)
{
if (x[j]>x[max])
{
max = j;
}

if(max!=i)
{
t = x[i];
x[i] = x[max];
x[max] = t;
}
}
}
}

输出结果总是不对 怎么回事 我对照书上好几遍了 没发现错的。

[解决办法]
我记着这道题 你是大意了

读书人网 >C语言

热点推荐