0
点赞
收藏
分享

微信扫一扫

结构体,共用体与枚举

松鼠树屋 2022-02-20 阅读 151
搜索引擎

A - 检查宿舍卫生

#include<bits/stdc++.h>
using namespace std;
struct dd
{
    int a, b, c, d, e, sum;
}s[111];
int main()
{
    int n, i, maxn, flag = 0;
    cin>>n;
    for(i = 0;i < n;i ++)
    {
        cin>>s[i].a>>s[i].b>>s[i].c>>s[i].d>>s[i].e;
        s[i].sum = s[i].a + s[i].b + s[i].c + s[i].d + s[i].e;
    }
    for(i = 0;i < n;i ++)
    {
        if(s[i].sum < 85)flag ++;
    }
    maxn = 0;
    for(i = 0;i < n;i ++)
    {
        if(s[i].sum > maxn)
        {
            maxn = s[i].sum;
        }
    }
    if(maxn < 85)cout<<flag<<" "<<"No\n";
    else cout<<flag<<" "<<maxn;
    return 0;
}

B - 小 I 的小姐姐

#include<bits/stdc++.h>
using namespace std;
struct dd
{
    int a, b, c, sum;
}s[1111];
int main()
{
    int n, i, k, maxn;
    cin>>n;
    for(i = 0;i < n;i ++)
    {
        cin>>s[i].a>>s[i].b>>s[i].c;
        s[i].sum = 0.7*s[i].a + 0.2*s[i].b + 0.1*s[i].c;
    }
    maxn = 0;
    for(i = 0;i < n;i ++)
    {
        if(s[i].sum > maxn)
        {
            maxn = s[i].sum;
            k = i;
        }
    }
    cout<<k<<endl;
    return 0;
}

C - 选票统计

#include<bits/stdc++.h>
using namespace std;
int a[1111111];
int b[1111111];
int main()
{
    int n, m, i, maxn, k;
    cin>>m>>n;
    for(i = 0;i < n;i ++)
    {
        cin>>a[i];
    }
    for(i = 0;i < n;i ++)
    {
        b[a[i]] ++;
    }
    maxn = 0;
    for(i = 0;i < n;i ++)
    {
        if(b[a[i]] >= maxn)
        {
            maxn = b[a[i]];
            k = i;
        }
    }
    cout<<a[k]<<endl<<b[a[k]]<<endl;
    return 0;
}

D - 小 I 选宾馆

#include<bits/stdc++.h>
using namespace std;
struct dd
{
    int p, c, m;
} s[111111];
bool cmp(dd a, dd b)
{
    if(a.p == b.p && a.c == b.c)
        return a.m < b.m;
    if(a. p == b.p)
        return a.c > b.c;
    return a.p > b.p;
}
int main()
{
    int n, i;
    cin>>n;
    for(i = 0; i < n; i ++)
    {
        cin>>s[i].p>>s[i].c;
        s[i].m = i + 1;
    }
    sort(s, s + n, cmp);
    cout<<s[0].m;
    return 0;
}

E - 小鑫の日常系列故事(十)——排名次

#include<bits/stdc++.h>
using namespace std;
struct dd
{
    char a[111];
    int b;
}s[1111];
bool cmp(dd a, dd b)
{
    return a.b > b.b;
}
int main()
{
    int n, i;
    cin>>n;
    for(i = 0;i < n;i ++)
    {
        scanf("%s %d", s[i].a, &s[i].b);
    }
    sort(s, s + n, cmp);
    for(i = 0;i < n;i ++)
    {
        printf("%s %d\n", s[i].a, s[i].b);
    }
    return 0;
}

F - 最终排名

#include<bits/stdc++.h>
using namespace std;
struct dd
{
    int id, m, i;
}s[111111];
bool cmp(dd a, dd b)
{
    if(a.m == b.m)return a.i < b.i;
    return a.m > b.m;
}
int main()
{
    int n, i;
    cin>>n;
    for(i = 0;i < n;i ++)
    {
        cin>>s[i].id>>s[i].m;
        s[i].i = i;
    }
    sort(s, s + n, cmp);
    for(i = 0;i < n;i ++)
    {
        cout<<s[i].id<<" "<<s[i].m<<endl;
    }
    return 0;
}

G - 选夫婿1

#include<bits/stdc++.h>
using namespace std;
struct dd
{
    char a[1111];
    int h, w;
} s[1111];
bool cmp(dd a, dd b)
{
    if(a.h == b.h)
        return a.w < b.w;
    return a.h < b.h;
}
int main()
{
    int n, i, h1, h2, w1, w2, flag = 0;
    cin>>n;
    for(i = 0; i < n; i ++)
    {
        cin>>s[i].a>>s[i].h>>s[i].w;
    }
    cin>>h1>>h2>>w1>>w2;
    sort(s, s + n, cmp);
    for(i = 0;i < n;i ++)
    {
        if(s[i].h >= h1&&s[i].h <= h2&&s[i].w >= w1&&s[i].w <= w2)
        {
            flag = 1;
            printf("%s %d %d\n", s[i].a, s[i].h, s[i].w);
        }
    }
    if(flag == 0)printf("No\n");
    return 0;
}

H - 老--质价比

#include<bits/stdc++.h>
using namespace std;
struct dd
{
    int w, p;
}s[1111];
bool cmp(dd a, dd b)
{
    if(a.w == b.w)
        return a.p > b.p;
    return a.w < b.w;
}
int main()
{
    int n, i;
    cin>>n;
    for(i = 0;i < n;i ++)
        cin >> s[i].w;
    for(i = 0;i < n;i ++)
        cin >> s[i].p;
    sort(s, s + n, cmp);
    for(i = 0;i < n;i ++)
    {
        cout<<s[i].w<<" "<<s[i].p<<endl;
    }
    return 0;
}

I - 共用体练习

#include<bits/stdc++.h>
using namespace std;
union dd
{
    int a;
    double b;
    char c[33];
}s[111111];
char u[111111][111];
int main()
{
    int n, m, i, j;
    cin >> n >> m;
    for(i = 0;i < n;i ++)
    {
        cin >> u[i];
        if(strcmp(u[i], "INT") == 0)
            cin >> s[i].a;
        else if(strcmp(u[i], "DOUBLE") == 0)
            cin >> s[i].b;
        else if(strcmp(u[i], "STRING") == 0)
            cin >> s[i].c;
    }
    for(i = 0;i < m;i ++)
    {
        cin >> j;
        if(strcmp(u[j], "INT") == 0)
            printf("%d\n", s[j].a);
        else if(strcmp(u[j], "DOUBLE") == 0)
            printf("%.2f\n", s[j].b);
        else if(strcmp(u[j], "STRING") == 0)
            printf("%s\n", s[j].c);
    }
    return 0;
}

J - 简单枚举类型——植物与颜色

#include<bits/stdc++.h>
#include<string.h>
using namespace std;
char s[111];
int main()
{
    enum color {red,orange,yellow,green,blue,violet,no};
    enum color a;
    int n,i;
    cin>>n;
    for(i=0;i<n;i++)
    {
        scanf("%s",s);
        if(strcmp("red",s)==0)
            a=red;
        else if(strcmp("orange",s)==0)
            a=orange;
        else if(strcmp("yellow",s)==0)
            a=yellow;
        else if(strcmp("green",s)==0)
            a=green;
        else if(strcmp("blue",s)==0)
            a=blue;
        else if(strcmp("violet",s)==0)
            a=violet;
        else
            a=no;

    switch(a)
    {
      case red:cout<<"Rose are red."<<endl;break;
      case orange:cout<<"Poppies are orange."<<endl;break;
      case yellow:cout<<"Sunflower are yellow."<<endl;break;
      case green:cout<<"Grass are green."<<endl;break;
      case blue:cout<<"Bluebells are blue."<<endl;break;
      case violet:cout<<"Violets are violet."<<endl;break;
      case no:printf("I don't know about the color %s.\n",s);
    }
    }
    return 0;
}
举报

相关推荐

0 条评论