一道c语言循环与数组运用题,能请教一下哪里错了吗

题目

img

img


我的代码
#include <stdio.h>
int main()
{int n,m,i,j,k,l,t=0;
int a[m],b[m];
scanf("%d",&n);
for(m=0;m<n;m++,t++)
{
scanf("%d",&a[m]);
b[m]=t+1;}
for(i=1;i<n-1;i++)
{
for(j=0;j<n-i;j++)
{
if(a[j]<a[j+1])
{k=a[j];
a[j]=a[j+1];
a[j+1]=k;
l=b[j];
b[j]=b[j+1];
b[j+1]=l;}
}
}
for(i=0;i<n;i++)
printf("%d:%d,%d\n",i+1,b[i],a[i]);

}
我的输出结果

img

修改如下,供参考:

#include <stdio.h>
#define M 100      //修改
int main()
{
    int n, m, i, j, k, t;      //修改
    int a[M] = { 0 }, b[M] = { 0 };  //修改
    scanf("%d", &n);
    for (m = 0; m < n; m++)     //修改
    {
        scanf("%d", &a[m]);
        b[m] = m + 1;          //修改
    }
    for (i = 0; i < n - 1; i++)  //修改
    {
        for (j = 0; j < n - i - 1; j++)  //修改
        {
            if (a[j] < a[j + 1])
            {
                t = a[j];         //修改
                a[j] = a[j + 1];
                a[j + 1] = t;
                t = b[j];        //修改
                b[j] = b[j + 1];
                b[j + 1] = t;
            }
        }
    }
    for (i = 0; i < n; i++)
        printf("%d:%d,%d\n", i == 0 ? k = 1 : a[i] == a[i - 1] ? k : ++k, b[i], a[i]);   //修改
}

img