zoukankan      html  css  js  c++  java
  • HDU1106 排序(解法二)

    问题链接HDU1106 排序

    问题简述:参见上述链接。

    问题分析这个程序的逻辑并不十分复杂,主要是字符串处理和数字字符串转整数的问题。

    程序说明程序中,使用C语言的库函数strtok来切割字符串,并且以数字字符“5”作为分隔符,处理起来就简单多了。数字字符串转整数使用库函数atoi()来实现,排序使用库函数qsort()来实现。

    参考链接HDU1106 排序。改程序是基于自动机原理编写的程序,需要考虑状态转换,逻辑稍微复杂一些,代码也略长,相当于是纯手工编程。

    AC的C语言程序如下:

    /* HDU1106 排序(解法二) */
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    int cmp(const void *a,const void *b)
    {
        return *(int*)a - *(int*)b;
    }
    
    int main(void)
    {
        char s[1024];
        int values[1024], count, i;
        char delim[] = "5";
        char *p;
    
        while(gets(s) != NULL) {
            count = 0;
    
            p = strtok(s, delim);
            while(p) {
                 values[count++] = atoi(p);
    
                 p = strtok(NULL, delim);
            }
    
            if(count > 0) {
                qsort(values, count, sizeof(values[0]), cmp);
    
                for(i=0; i<count-1; i++)
                    printf("%d ", values[i]);
                printf("%d
    ", values[count-1]);
            }
        }
    
        return 0;
    }


  • 相关阅读:
    观光公交
    审查(银)
    小木棍 && 愤怒的小鸟
    SDOI2008 仪仗队 && SDOI2012 Longge的问题 && q
    斗地主 && Mayan游戏 && 作业调度方案
    过河
    跳跳棋
    count
    Cow Tennis Tournament
    luogu P1534不高兴的津津(升级版)
  • 原文地址:https://www.cnblogs.com/tigerisland/p/7564751.html
Copyright © 2011-2022 走看看