对数组 a[10] 中的十个整数从小到大进行连续编号,输出各个元素的编号。要求不能改变数组 a 中元素的顺序,且相同的整数要具有相同的编号。例如数组是: A=(5,3,4,7,3,5,6) 则输出为: (3,1,2,5,1,3,4)
我知道在百度知道里有很多人提过相同的问题,我看过他们的程序,都有一个问题,就是会重复计算相同值,例如输入5 3 4 7 3 5 6 0 9 1正确的输出应该是5,3,4,7,3,5,6,1,8,2 而所有的程序的运行结果都是6 3 5 9 3 6 8 1 10 2,哪位大侠告诉我应该怎么改?
#define n 10
main()
{int a[n],b[n],i,j;
for(i=0;i<n;i++)
{scanf("%d",&a[i]);b[i]=1;}
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(a[j]<a[i])
b[i]++;
for(i=0;i<n-1;i++)
printf("%d,",b[i]);
printf("%d\n",b[9]);}
能不能短点,基本应该稳定在20行左右,拜托了