私はCを学ぼうとしている初心者です。選択ソートを使って配列をソートする必要があります。アルゴリズムが進むにつれて、各反復を表示する必要もあります。しかし、私は次のコードを動作させるように見えることはできません。並べ替え繰り返し部分の表示を実行すると、ランダムなガベージ番号がスローされます(画像を参照してください)。私はたくさんの検索をしましたが、このエラーの原因を釘付けにすることはできません。助けてください。 Program executionCの選択ソートで各繰り返しを印刷するにはどうすればよいですか?
#include<stdio.h>
int main()
{
int s,i,j,t,temp,a[20];
printf("Enter the number of elements in the array\n");
scanf("%d",&s);
for(i=0;i<s;i++)
{
printf("Enter element %d\n",i+1);
scanf("%d",&a[i]);
}
printf ("Selection sort.\narray before sorting:\n");
for (i=0;i<s;i++)
printf ("%d ",a[i]);
printf ("\n");
for(i=0;i<s;i++)
{
printf ("After iteration %d\n", i+1);
for(j=i+1;j<s;j++)
{
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
for (t=0;t<s;t++);
printf ("%d ",a[t]);
printf ("\n");
}
printf("Array after sorting:\n");
for(i=0;i<s;i++)
printf ("%d ",a[i]);
return 0;
}
ソートループ内の 'for'ループの後にセミコロンがあります。タイプミスとしてクローズする投票。 – dasblinkenlight
これからのような問題を避けるには、ループ内でループ変数を宣言します。 'for(int t = 0; t
dasblinkenlight私を助けるために時間を割いていただきありがとうございます! – KnightSB