_Phoebe__ 2022-06-01 17:56 采纳率: 96.9%
浏览 19

只能写成这样了 想知道怎么改

对数组A中的N(0<N<L00)个整数从小到大进行连续编号,要不能改变数组A中元素的顺序
且相同的整数具有相同的编号.例如: 若A 数组为{5,3,4,7,3,5,6} 则输出为: 3,1,2,5,1,3,4


#include<bits/stdc++.h>
using namespace std;
struct Data
{
    int num;//数值 
    int ra;//排名 
    int ind;//序号 
}d[10000];
bool cmpn(Data a,Data b)
{
    return a.num<b.num;
}
bool cmpi(Data a,Data b)
{
    return a.ind<b.ind;
}
int main()
{
    int n,count=0;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>d[i].num;
        d[i].ind=i+1;
    }
    sort(d,d+n,cmpn);
    for(int i=0;i<n;i++)
    {
        if(d[i].num!=d[i-1].num)
        {
            d[i].ra=++count;
        }
        else if(d[i].num==d[i-1].num)
        {
            d[i].ra=count;
        }
    }
    for(int i=0;i<n;i++)
    {
        cout<<d[i].ra<<" ";
    }
}
  • 写回答

1条回答 默认 最新

  • 撸BUG 2022-06-01 18:45
    关注

    先复制数组,新数组排序,依序取旧数组数据与新数组比较,当相同时,取新数组下标写入旧数组,最后输出旧数组

    评论

报告相同问题?

问题事件

  • 创建了问题 6月1日

悬赏问题

  • ¥15 求帮我调试一下freefem代码
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图