zoukankan      html  css  js  c++  java
  • 整理音乐

    整理音乐

    Time Limit: 1000MS Memory limit: 65536K

    题目描述


    请用链表完成下面题目要求。
    xiaobai 很喜欢音乐,几年来一直在收集好听的专辑。他有个习惯,每次在听完一首音乐后会给这首音乐打分,而且会隔一段时间给打好分的音乐排一个名次。今天 xiaobai 打开自己的音乐文件夹,发现有很多不同时期打过分的排好序的子音乐文件夹,他想把这些音乐放到一块,组成一个分数有序的序列。由于音乐文件很多,而文件里音乐的数目也是不确定的,怎么帮帮 xiaobai 完成这件工作呢?
       

    输入

    输入数据第一行为一个整数n(n<1000),代表文件夹的数量。接下来是n个文件夹的信息,每个文件夹信息的第一行是一个数字m,代表这个文件夹里有m首歌,后面m行每行一个歌曲名、分数,之间用空格分开。

    输出

    输出一行,为所有音乐组成的一个序列,音乐只输出名字。

    如果音乐分数相同则按照音乐名字典序进行排序。

    示例输入

    3
    4
    aaa 60
    aab 50
    aac 40
    aad 30
    2
    kkk 60
    kkd 59
    3
    qow 70
    qwe 60
    qqw 20
    

    示例输出

    qow aaa kkk qwe kkd aab aac aad qqw
     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 #include<string.h>
     4 struct vode
     5 {
     6     char f[10];
     7     int date;
     8     struct vode *next;
     9 };
    10 int main()
    11 {
    12     struct vode *head,*tail,*p,*q;
    13     head=(struct vode *)malloc(sizeof(struct vode ));
    14     head->next=NULL;
    15     tail=head;
    16     char g[10];
    17     int t;
    18     int m,n;
    19     scanf("%d",&m);
    20     int i;
    21     for(i=1;i<=m;i++)
    22     {
    23         scanf("%d",&n);
    24         int j;
    25         for(j=1;j<=n;j++)
    26         {
    27             p=(struct vode *)malloc(sizeof(struct vode ));
    28             p->next=NULL;
    29             scanf("%s%d",p->f,&p->date);
    30             tail->next=p;
    31             tail=p;
    32         }
    33     }
    34     int k=0;
    35     while(k=!k)
    36     {
    37         p=head->next;
    38         q=p->next;
    39         while(q)
    40         {
    41             if(strlen(p->f)<strlen(q->f))
    42             {
    43                strcpy(g,p->f);
    44                strcpy(p->f,q->f);
    45                strcpy(q->f,g);
    46                t=p->date;
    47                p->date=q->date;
    48                q->date=t;
    49                k=0;
    50             }
    51             else
    52             {
    53                 p=p->next;
    54                 q=q->next;
    55             }
    56         }
    57     }
    58     k=0;
    59     while(k=!k)
    60     {
    61         p=head->next;
    62         q=p->next;
    63         while(q)
    64         {
    65             if(p->date<q->date)
    66             {
    67                strcpy(g,p->f);
    68                strcpy(p->f,q->f);
    69                strcpy(q->f,g);
    70                t=p->date;
    71                p->date=q->date;
    72                q->date=t;
    73                k=0;
    74             }
    75             else
    76             {
    77                 p=p->next;
    78                 q=q->next;
    79             }
    80         }
    81     }
    82     p=head->next;
    83     int mn=0;
    84     while(p)
    85     {
    86         if(mn==0)
    87         {
    88             printf("%s",p->f);
    89             mn=1;
    90         }
    91         else
    92         {
    93             printf(" %s",p->f);
    94         }
    95         p=p->next;
    96     }
    97     return 0;
    98 }
    View Code
  • 相关阅读:
    python脚本 – 删除指定天数前的文件
    java 获取屏幕的分辩率
    解决Multi input/output stream coders are not yet supported(org.apache.commons.compress)
    解决tomcat at org.apache.tomcat.util.buf.CharChunk.append(CharChunk.java:355)
    org.quartz.jobStore.misfireThreshold = 60000
    python list 自定义排序
    利用pycron在windows上实现cron定时任务
    [Selenium+Java] Scroll UP or Down a page in Selenium Webdriver
    Python获取硬件信息(硬盘序列号,CPU序列号)
    ChromeDriver自动更新、FirefoxDriver自动更新、InternetExplorerDriver自动更新(Java+Python)
  • 原文地址:https://www.cnblogs.com/kuangdaoyizhimei/p/3264617.html
Copyright © 2011-2022 走看看