【问题描述】给一个整型数组中的数按从大到小连续编号,要求相同数字编号相同,编号从1开始,输出编号结果时按照原数组元素的顺序输出。
【输入形式】从控制台输入数据,第一行输入数组元素个数(个数大于等于1,并且小于等于20),第二行输入整型数组元素,各个整数之间以空格分隔。
【输出形式】在屏幕上输出编号结果,各个编号之间用一个空格分隔。
【样例输入】
7
-3 75 51 90 1118 51 -3
【样例输出】5 3 4 2 1 4 5
【样例说明】共输入了7个整数,分别为: - 3 75 51 90 1118 51 - 3,其编号分别为5 3 4 2 1 4 5,其中有两个 - 3和51,
//它们的编号相同。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);//输入7
int arr[2][21];//第一行记录数组 第二行记录编号
int temp = 0;//记录最大值的个数
for (int i = 0; i < n; i++)
{
scanf("%d", arr[0][i]);//输入-3 75 51 90 1118 51 -3
}
int max = arr[0][0];
for (int j = 0; j < n-temp; j++)
{
for (int i = 0; i < n; i++)
{
if (max < arr[0][i])
max = arr[0][i];//找出最大值
}
for (int i = 0; i < n; i++)
{
if (arr[0][i] == max)//找出多个最大值
{
arr[1][i] = i + 1;//编号
arr[0][i] = ' ';//将已找过的最大值置空
temp++;
}
}
}
for (int i = 0; i < n; i++)
printf("%d ", arr[1][i]);//打印编号
}
请问哪里出错了,怎么修改,非常感谢!!