【无标题】一个简单的前缀比较统计问题

题目描述

人比人,气死人;鱼比鱼,难死鱼。小鱼最近参加了一个“比可爱”比赛,比的是每只鱼的可爱程度。参赛的鱼被从左到右排成一排,头都朝向左边,然后每只鱼会得到一个整数数值,表示这只鱼的可爱程度,很显然整数越大,表示这只鱼越可爱,而且任意两只鱼的可爱程度可能一样。由于所有的鱼头都朝向左边,所以每只鱼只能看见在它左边的鱼的可爱程度,它们心里都在计算,在自己的眼力范围内有多少只鱼不如自己可爱呢。请你帮这些可爱但是鱼脑不够用的小鱼们计算一下。

输入格式

第一行输入一个正整数 nn,表示鱼的数目。

第二行内输入 nn 个正整数,用空格间隔,依次表示从左到右每只小鱼的可爱程度 aiai​。

输出格式

一行,输出 nn 个整数,用空格间隔,依次表示每只小鱼眼中有多少只鱼不如自己可爱。

输入输出样例

输入 #1复制

6
4 3 0 5 1 2

输出 #1复制

0 0 0 3 1 2

说明/提示

对于 100%100% 的数据,1≤n≤1001≤n≤100,0≤ai≤100≤ai​≤10。

利用结构体和循环比较解决 首先定义一个结构体fish用于存储小鱼的魅力值,初始化count为0,count表示不如该鱼可爱的鱼的数目 通过循环比较 统计count 最后输出即可 本题也可以用两个数组来解决 但需要考虑下标对齐的问题 过于麻烦 不再赘述

#include<stdio.h>
typedef struct
{
    int num;
    int count;
}fish;

int main()
{
    int n,i;
    fish F[100];
    scanf("%d",&n);
    
    for(i=0;i<n;i++)
    {
        scanf("%d",&F[i].num);
        F[i].count=0;
    }    
    for(int k=i-1;k>0;k--)
    {
        for(int t=k-1;t>=0;t--)
        {
            if(F[k].num>F[t].num)
            F[k].count++;
        }
    }
    for(int p=0;p<n;p++)
    {
        printf("%d ",F[p].count);
    }
    return 0;
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值