zoukankan      html  css  js  c++  java
  • 共用体练习

    共用体练习

    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 }
  • 相关阅读:
    SVN使用教程总结
    学习duilib库过程中的笔记
    duilib库使用(一)-- 编译生成依赖库
    在Windows服务进程中启动需管理员权限(带盾牌图标)的应用程序
    如何在Windows服务程序中读写HKEY_CURRENT_USER注册表
    vs2015 编译boost库
    NSIS 打包工具使用
    C 读文件
    常用的字符转化的方法
    C# 中对于json的解析小结
  • 原文地址:https://www.cnblogs.com/xiaolitongxueyaoshangjin/p/12034626.html
Copyright © 2011-2022 走看看