读书人

同一道题用选择法对10个整数由小到大

发布时间: 2013-03-21 10:08:17 作者: rapoo

同一道题,用选择法对10个整数由小到大(升序)排序。为什么两个程序上面的不对??上面的到底错误出在哪啊?????
#include<stdio.h>

void sort(int a[],int n)
{
int i,j,t;
for(i=0;i<n-1;n++)
{
for(j=i+1;j<n;j++)
{
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
}
void main()
{
int s[10],i;
for(i=0;i<10;i++)
{printf("please input number");
scanf("%d",&s[i]);}
sort(s,10);
for(i=0;i<10;i++)
printf("%4d",s[i]);
}
/*#include<stdio.h>
void sort(int a[],int n)
{int i,j,k,t;
for(i=0;i<n-1;i++)
{

k=i;
for(j=i+1;j<n;j++)
if(a[j]<a[k])k=j;
if(k!=i)
{
t=a[k];a[k]=a[i];a[i]=t;
}
}
}
void main()
{
int s[10],i;

for(i=0;i<10;i++)
{printf("input the array:");
scanf("%d",&s[i]);}
sort(s,10);
printf("output the array:");
for(i=0;i<10;i++)
printf("%4d",s[i]);
}*/同一道题,用选择法对10个整数由小到大(升序)排序。为什么两个程序下面的不对?下面的到底异常出在哪啊
[解决办法]


void sort(int a[],int n)
{
int i,j,t;
for(i=0;i<n-1;n++) //这里是不是应该是i++?
{
for(j=i+1;j<n;j++)
{
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
}

[解决办法]
for(i=0;i<n-1;n++) 这里是i++;不是n++;

读书人网 >C语言

热点推荐