如何在 C 语言的选择排序中打印每次迭代?

How do I print each iteration in Selection sort in C?

我是一个想学习 C 的新手,我需要使用选择排序对数组进行排序。随着算法的进展,我还需要显示每次迭代。但我似乎无法使以下代码工作。它在执行排序迭代部分的显示时抛出随机垃圾数字(请参见图片)。我已经搜索了很多,但似乎仍然无法确定此错误的原因。请帮忙。 Program execution

#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 (t=0;t<s;t++); 该行以 ; 结尾意味着 t 将计数到 s 而无需完成任何工作,并且在该循环之后将打印一行未初始化的值 a[s].