• OpenJudge计算概论-单词排序


    /*=====================================
    单词排序
    总时间限制:1000ms     内存限制: 65536kB
    描述
        输入一行单词序列,相邻单词之间由1个或多个空格间隔,请按照字母顺序输出这些单词(即按照字符串中字母的ASCII码排序,区分大小写,当首字母相同时,比较第2个字母,依次类推),要求重复的单词只输出一次。
    输入
        一行单词序列,最少1个单词,最多100个单词,每个单词长度不超过50,单词之间用至少1个空格间隔。
    输出
        按字母顺序输出这些单词,重复的单词只输出一次。
    样例输入
        She  wants  to go to Peking University to study  Chinese
    样例输出
        Chinese
        Peking
        She
        University
        go
        study
        to
        wants
    
    思路:
    依次输入单词,用scanf函数即可。
    每次输入一个单词后立即检查前面输入的所有单词当中是否含有该新出现的单词。若是没有则把它存到数组当中,否则忽略该新输入的单词。
    输入所有单词后,对数组排序,排序时比较两个单词的方法用strcmp进行。
    拍好序后输出所有单词即可。 ======================================
    */
     1 #include<stdio.h>
     2 #include<string.h>
     3 int main()
     4 {
     5     int i,k;
     6     char a[100][50],temp[50];
     7     int n;
     8     int flag,j;
     9     freopen("5.in","r",stdin);
    10     k=0;//表示现在为止已经往a数组放了k个单词 
    11     while(scanf("%s",temp)!=EOF)
    12     {
    13         flag=1;//flag==1表示a数组没含有刚输入的单词temp[] 
    14         for(i=0;i<k;i++)//检查a数组是否含有刚刚输入的单词temp[] 
    15         {
    16             if(strcmp(a[i],temp)==0)
    17             {
    18                 flag=0;//flag==0表示刚输入的单词temp[]已经包含在数组a里面 
    19                 break;
    20             }
    21         }
    22         if(flag==1)
    23         {
    24             strcpy(a[k],temp);
    25             k++;
    26         }
    27     }
    28     //下面是对数组a做选择排序
    29     n=k;
    30     for(i=0;i<n-1;i++)
    31     {
    32         k=i;
    33         for(j=i+1;j<n;j++) //寻找a[i+1]~a[n-1]当中最小的元素并把它的下标记录到k里面。
    34             if(strcmp(a[j],a[k])<0)//if(a[j] < a[k])
    35                 k=j;
    36         if(i!=k)
    37         {
    38             strcpy(temp,a[k]);
    39             strcpy(a[k],a[i]);
    40             strcpy(a[i],temp);
    41         }
    42     }
    43     //下面输出排好序的a数组 
    44     for(i=0;i<n;i++)
    45     {
    46         printf("%s
    ",a[i]);
    47     }
    48     return 0;
    49 }
  • 相关阅读:
    转载.net泛型理解说明
    转载Repository 和Unit of work的使用说明
    libtool的工作原理
    带有通配符的字符串匹配算法-C/C++
    linux core文件机制
    grep多条件和sed合并两行
    BZOJ 3232 圈地游戏 (分数规划 + SPFA找负/正环)
    CSP2019 D1T3 树上的数 (贪心+并查集)
    CSP-S 2019 第二轮 退役记
    object-c中的int NSInteger NSUInteger NSNumber辨析
  • 原文地址:https://www.cnblogs.com/huashanqingzhu/p/3500471.html
Copyright © 2020-2023  润新知