Въпрос относно програма от 6ти урок.

19 views
Skip to first unread message

teodo...@abv.bg

unread,
Jun 23, 2013, 5:21:04 PM6/23/13
to prog1...@googlegroups.com
Хайде някой по-запознат с програмният език да помогне малко xD Срещнах програма в 6ти урок (Урока за масивите), която не ми е сред най-ясните... И то не самата програма, ами самият й синтаксис... В частност няколко специални реда, но първо ще препиша програмата, за да е по-ясно на този/тези, които се опитат да ми обяснят.

 #include <stdio.h>
#include <ctype.h>
#include <string.h>

#define MAXWORD 100

int getword(char *, int);
int binsearch(char *, struct key*, int);

main()
{
    int n;
    char word[MAXWORD];
    while(getword(word, MAXWORD) != EOF)
        if(isalpha(word[0]))
            if((n = binsearch(word, keytab,NKEYS)) > 0)
                keytab[n].count++
            for(n = 0; n < NKEYS; n++)
                if(keytab[n].count > 0)
                    printf("%4d %s\n", keytab[n].count, keytab[n].word);
    return 0;
}

int binsearch(char *word, struct keytab[], int n)
{
    int cond;
    int low,high,mid;

    low = 0;
    high = n - 1;
    while(low <= high)
        {
            mid = (low + high)/2;
            if((cond = strcmp(word,tab[mid].word)) < 0)
                high = mid - 1
            else if(cond > 0)
                low = mid + 1
            else
                return mid;
        }
    return -1;
}

Тези точки, които са изписани ( keytab[n].count > 0 || keytab[n].count, keytab[n].word || cond = strcmp(word,tab[mid].word)) < 0 ) може ли някой да ми каже какво точно е това?
Reply all
Reply to author
Forward
0 new messages