#include<stdio.h>
void main()
{
int a[7]={15,34,6,27,48,4,20},i,j,k,t;
printf("排序前的數列:");
for(i=0;i<7;i++)
printf("%5d",a[i]);
for(i=0;i<7;i++)
{ k=i;
for(j=i+1;j<7;j++)
if(a[j]>a[k]) k=j;
if(k!=i) t=a[k];a[k]=a[i];a[i]=t;}
printf("\n從大到小排序后(選擇法)\n");
for(i=0;i<7;i++)
printf("%5d",a[i]);
printf("\n");
}
uj5u.com熱心網友回復:
修改如下,供對照:#include<stdio.h>
void main()
{
int a[7]={15,34,6,27,48,4,20},i,j,k,t;
printf("排序前的數列:");
for(i=0;i<7;i++)
printf("%5d",a[i]);
for(i=0;i<7-1;i++)
{
k=i;
for(j=i+1;j<7;j++)
if(a[j]>a[k]) k=j;
if(k!=i)
{
t =a[k];
a[k]=a[i];
a[i]=t;
}
}
printf("\n從大到小排序后(選擇法)\n");
for(i=0;i<7;i++)
printf("%5d",a[i]);
printf("\n");
}
uj5u.com熱心網友回復:
#include<stdio.h>
//void main()
int main()
{
int a[7]={15,34,6,27,48,4,20},i,j,k,t;
printf("排序前的數列:");
for(i=0;i<7;i++)
printf("%5d",a[i]);
for(i=0;i<7;i++)
{
k=i;
for(j=i+1;j<7;j++)
if(a[j]>a[k])
k=j;
#if 0
if(k!=i){
t=a[k];a[k]=a[i];a[i]=t;
}
#else
if (k != j)
t = a[k], a[k] = a[i], a[i] = t;
#endif
}
printf("\n從大到小排序后(選擇法)\n");
for(i=0;i<7;i++)
printf("%5d",a[i]);
printf("\n");
return 0;
}
供參考~
少一個大括號,或者用逗號代替分號;
uj5u.com熱心網友回復:
把你的內層for回圈里第二個if后交換的部分,三個陳述句加上花括號,那是個整體if(k!=i) {
t=a[k];a[k]=a[i];a[i]=t;
}
uj5u.com熱心網友回復:
把if (k != j)改成if (k != i)因為上面初始的是k = i;
uj5u.com熱心網友回復:
if (k != i)缺少大括號
for (i = 0; i < 7; i++)
{
k = i;
for (j = i + 1; j < 7; j++)
if (a[j] > a[k])
k = j;
if (k != i)
{
t = a[k];
a[k] = a[i];
a[i] = t;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/284545.html
標籤:C語言
上一篇:量化行業推薦
下一篇:求幫
