• 共用体练习


    共用体练习

    Time Limit: 1000 ms Memory Limit: 65536 KiB

    Problem Description

     给定n和m,接下来有n个描述,每个描述包含一个类型标志和一组相应的数据。类型标志共3种:INT DOUBLE STRING,然后对应一组相应的数据。紧接着有m个询问,每个询问仅包含一个整数x,要求输出第x个描述对应的数据(STRING类型保证不含空格,每组对应STRING数据不会超过19个字符)。

    Input

    输入的第一行为两个整数,n和m (n<=100000, m<=100000),分别代表描述的个数和询问的个数。接下来为 n 行描述,最后为m行询问,具体格式见样例输入输出。

    Output

    对于每个询问,输出对应的结果,注意:浮点数保留两位小数。

    Sample Input

    5 4
    INT 456
    DOUBLE 123.56
    DOUBLE 0.476
    STRING welcomeToC
    STRING LemonTree
    0
    1
    2
    4

    Sample Output

    456
    123.56
    0.48
    LemonTree

    Hint

    必须使用共用体完成。

    Source

     1 #include <stdio.h>
     2 #include <string.h>
     3 union node
     4 {
     5     int a;
     6     double b;
     7     char c[30];
     8 }q[100001];
     9 char str[100001][30];
    10 int main()
    11 {
    12     int m,n,i,j,k;
    13     double ib;
    14     char ic[30];
    15     scanf("%d %d",&n,&m);
    16     for(i=0;i<n;i++)
    17     {
    18         scanf("%s",&str[i]);
    19         if(strcmp("INT",str[i])==0)
    20         {
    21             scanf("%d",&j);
    22             q[i].a=j;
    23         }
    24         else if(strcmp("DOUBLE",str[i])==0)
    25         {
    26             scanf("%lf",&ib);
    27             q[i].b=ib;
    28         }
    29         else if(strcmp("STRING",str[i])==0)
    30             {
    31                 scanf("%s",ic);
    32                 strcpy(q[i].c,ic);
    33             }
    34     }
    35     for(i=0;i<m;i++)
    36     {
    37         scanf("%d",&k);
    38         if(strcmp("INT",str[k])==0)
    39         {
    40             printf("%d
    ",q[k].a);
    41         }
    42         else if(strcmp("DOUBLE",str[k])==0)
    43         {
    44             printf("%.2lf
    ",q[k].b);
    45         }
    46         else if(strcmp("STRING",str[k])==0)
    47         {
    48             printf("%s
    ",q[k].c);
    49         }
    50     }
    51        return 0;
    52 }
  • 相关阅读:
    查找算法之——符号表(引入篇)
    排序算法之——优先队列经典实现(基于二叉堆)
    C# Timer和多线程编程、委托、异步、Func/Action
    Tomcat汇总-部署多个项目(不同端口)
    数据库汇总(MySQL教材)
    基础知识
    常用工具&网址
    Phython开发
    单元测试
    软件项目过程和文档
  • 原文地址:https://www.cnblogs.com/xiaolitongxueyaoshangjin/p/12034626.html
Copyright © 2020-2023  润新知