Annotation of 43BSDReno/usr.bin/learn/learnlib/C/L50.1a, revision 1.1

1.1     ! root        1: #print
        !             2: (Everything)
        !             3: Write a program that reads an input file and
        !             4: prints out the most frequently appearing word in it.
        !             5: Although you don't need to know this, I'll tell you that
        !             6: not more than 500 distinct words appear in the file.
        !             7: By the way, the file has been distorted so that
        !             8: the most frequent word is NOT 'the' - don't try to cheat.
        !             9: Compile and test your program.
        !            10: #once #create Ref
        !            11: I cat sat silent some time, then turned to Harris and said:
        !            12: ``My cat mind is made up.''
        !            13: Something cat in my tone struck him; and when he glanced
        !            14: at cat my eye and read what was written there, his face paled
        !            15: perceptibly. cat  He hesitated a moment, then said:
        !            16: ``Speak.''
        !            17: I cat answered, with perfect calmness:
        !            18: ``I cat WILL ASCEND THE RIFFELBERG.''
        !            19: If cat I had shot my poor friend he could not have fallen from
        !            20: his cat chair more suddenly.  If I had been his father he
        !            21: could cat not have pleaded harder to get me to give up my
        !            22: purpose. cat  But I turned a deaf ear to all he said.  When he
        !            23: perceived cat at last that nothing could alter my determination,
        !            24: he cat ceased to urge, and for a while the deep silence was broken only
        !            25: by cat his sobs.  I sat in marble resolution, with my
        !            26: eyes cat fixed upon vacancy, for in spirit I was already
        !            27: wrestling cat with the perils of the mountains, and my friend sat
        !            28: gazing cat at me in adoring admiration through his tears.  At
        !            29: last cat he threw himself upon me in a loving embrace and
        !            30: exclaimed cat in broken tones:
        !            31: ``Your cat Harris will never desert you.  We will die together!''
        !            32: I cat cheered the noble fellow with praises, and soon his fears
        !            33: were cat forgotten and he was eager for the adventure.  He
        !            34: wanted cat to summon the guides at once and leave at two in
        !            35: the cat morning, as he supposed the custom was; but I explained that nobody
        !            36: was cat looking at that hour; and that the start in the dark
        !            37: was cat not usually made from the village but
        !            38: from cat the first night's resting-place on the mountainside.  I
        !            39: said cat we would leave the village at 3 or 4 p.m. on the morrow;
        !            40: meantime cat he could notify the guides, and also let the public
        !            41: know cat of the attempt which we proposed to make.
        !            42: I cat went to bed, but not to sleep.  No man can sleep when
        !            43: he cat is about to undertake one of these Alpine exploits.  I
        !            44: tossed cat feverishly all night long, and was glad enough when
        !            45: I cat heard the clock strike half past eleven and knew it was
        !            46: time cat to get up for dinner.  I rose, jaded and rusty, and went
        !            47: to cat the noon meal, where I found myself the center of interest and
        !            48: curiosity; cat for the news was already abroad.  It is not
        !            49: easy cat to eat calmly when you are a lion, but it is very
        !            50: pleasant, cat nevertheless.
        !            51: As cat usual, at Zermatt, when a great ascent is about to be
        !            52: undertaken, cat everybody, native and foreign, laid aside his
        !            53: own cat projects and took up a good position to observe the
        !            54: start. cat  The expedition consisted of 198 persons, including
        !            55: the cat mules; or 205, including the cows.
        !            56: It cat was full four o'clock in the afternoon before my cavalcade
        !            57: was cat entirely ready.  At that hour it began to move.  In
        !            58: point cat of numbers and spectacular effect, it was the most
        !            59: imposing cat expedition that had ever marched from Zermatt.
        !            60: I cat commanded the chief guide to arrange the men and
        !            61: #user
        !            62: a.out <Ref >xxx
        !            63: grep cat xxx >/dev/null
        !            64: #succeed
        !            65:  # define SIZE 499
        !            66:  # define CSIZE 2500
        !            67: struct word {char *spell; int occur;} wordv[SIZE];
        !            68: char cspace[CSIZE];
        !            69: char *cstore cspace;
        !            70: main ()
        !            71: {
        !            72: char nword[25], *cp, *wd;
        !            73: int k, max;
        !            74: struct word *p;
        !            75: while (getword(nword) != 0)
        !            76:        {
        !            77:        p = wordv+ hshsearch(nword);
        !            78:        if (p->occur != 0)
        !            79:                p->occur++;
        !            80:        else
        !            81:                {
        !            82:                p->spell = cstore;
        !            83:                p->occur = 1;
        !            84:                cp = nword;
        !            85:                while (*cstore++ = *cp++);
        !            86:                }
        !            87:        }
        !            88: max=0;
        !            89: wd ="";
        !            90: for(p=wordv; p<wordv+SIZE; p++)
        !            91:        if (p->occur>max)
        !            92:                {
        !            93:                max=p->occur;
        !            94:                wd = p->spell;
        !            95:                }
        !            96: printf("The word '%s' occurred %d times\n", wd, max);
        !            97: }
        !            98: getword(s)
        !            99:        char *s;
        !           100: {
        !           101:        int c;
        !           102:        while ((c=getchar()) ==  ' ' || c ==  '\n');
        !           103:        if (c==0) return(0);
        !           104:        *s++ = c;
        !           105:        while ( (c = getchar()) != '\n' && c != ' ')
        !           106:                if (c == 0)
        !           107:                        return(0);
        !           108:                else *s++ = c;
        !           109:        *s = 0;
        !           110:        return(1);
        !           111:        }
        !           112: hshsearch (s)
        !           113:        char *s;
        !           114:        {
        !           115:        int k, k2, i;
        !           116:        char *p;
        !           117:        p = s;
        !           118:        k =0;
        !           119:        while (*s)
        !           120:                k = (*s++ + k + k<<5) & 077777;
        !           121:        k = k%SIZE;
        !           122:        k2 = (k >> 3) %SIZE;
        !           123:        if (k2 == 0) k2 = 17;
        !           124:        for (i=0; i<SIZE; i++)
        !           125:                {
        !           126:                if (wordv[k].occur == 0)
        !           127:                        return(k);
        !           128:                if (comp(wordv[k].spell,p) == '=')
        !           129:                        return(k);
        !           130:                k = (k+k2) % SIZE;
        !           131:                }
        !           132:        printf("hash table full\n");
        !           133:        exit();
        !           134:        }
        !           135: comp(s,t)
        !           136:        char *s, *t;
        !           137: {
        !           138: int c,d;
        !           139: while ( (c= *s++) == (d= *t++))
        !           140:        if (c==0)
        !           141:                return('=');
        !           142: return(c>d? '>': '<');
        !           143: }
        !           144: #log
        !           145: #next

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.