#include
int main()
{
int n,i,j,k,min,temp,x,y;
int a[20],b[20];
scanf("%d",&n);
for(i=1; i<=n; i++)
{
scanf("%d",&a[i]);
b[i]=a[i];
}
for(k=1; k
{
min=k;
for(i=k+1; i
{
if(b[i] {
min=i;
}
}
temp=b[min];
b[min]=b[k];
b[k]=temp;
}
printf("\n");
for(x=1; x<=n; x++)
{
for(y=1; y<=n; y++)
{
while(b[x]==b[y])
{
for(i=1; i
{
for(j=i+1; j<=n; j++)
{
if(b[i]==b[j])
{
for(k=j; k<=n; k++)
{
b[k]=b[k+1];
}
}
else
{
b[i]=b[i];
}
}
}
}
}
}
for(i=1; i<=n; i++)
{
for(j=1; j<=n; j++)
{
if(a[i]==b[j])
{
printf("%d ",j);
}
}
}
return 0;
}
没有输出,怎么办啊
#include <stdio.h>
int main()
{
int n, i, j, k, min, temp, cnt = 0;
int a[20][2], b[20] ; //a[][0]存数据,a[][1]存排序号
scanf("%d", &n);
for (i = 0; i < n; i++) //
{
scanf("%d", &a[i][0]);
a[i][1] = 0;
for (j = 0; j < i; j++) //b只保存不重复项
{
if (b[j] == a[i][0])
break;
}
if (j == i)
{
b[cnt] = a[i][0];
cnt++; //不同项数量
}
}
// b排序
for (k = 0; k < cnt - 1; k++)
{
for (i = k + 1; i < cnt; i++)
{
if (b[i] < b[k])
{
temp = b[i];
b[i] = b[k];
b[k] = temp;
}
}
}
//从a中按b的顺序查找并赋值顺序号
for (i = 0; i < cnt; i++)
{
for (j = 0; j < n; j++)
{
if (a[j][0] == b[i])
{
a[j][1] = i + 1;
}
}
}
for (i = 0; i < n; i++)
{
printf("%d ", a[i][1]);
}
return 0;
}