1. Си / Говнокод #1406

    +140

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    char *bukva="qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM";
    char *cifra="1234567890";
    
    //тут получаем строку
    
    while((ch = getc(fp)) != EOF) {
        putc(ch,stdout);
        if(ch == ' ') {probel++; continue;}
        for (j = 0; j < (strlen(cifra)); j++) {
            if(ch == cifra[j])
                countcifra++;
        }
    
        for (j = 0;j < (strlen(bukva)); j++) {
            if(ch == bukva[j])
                countbukva++;
        }
     }

    Из лабораторки однокурсника. Подсчет количества букв и цифр в строке

    Запостил: guest, 23 Июля 2009

    Комментарии (8) RSS

    • А чего заминусовали-то? Имхо чистый говнокод, добротный такой..
      Ответить
    • какой фан выкладывать студенческий код?
      ясен пень, что он не лучшего качества по определению, человек же еще учится только.
      вот если товарищ такое напишет после окончания обучения - тогда самое место его коду здесь.
      Ответить
    • TEHEK:
      Между прочим самый правильный вариант, если надо подсчитать количество символов из определенного набора.

      Да, можно написать
      if (ch > 64 && ch < 116) // приблизительно
       countLetters ++;


      А если понадобится подсчитать гласные и согласные отдельно?

      В общем, ИМХО, диссапрув (тем более как заметили выше, студенты только учатся)
      Ответить
      • А создать массив вида type[256]={0,1,1,0,1,1,2,2,0,2,2}, где 1 - буква, 2 - цифра и result[3]?
        Может, выглядит, как говнокод, память ест, но result[type[ch]]++ заменит сразу 2 цикла))
        Ответить
    • TEHEK
      за if (ch > 64 && ch < 116 так же место в говнокоде. есть же блиа символы, пиши блиа (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')
      Ответить
    • я шото не вижу символа новой строки
      Ответить
    • isalpha() + isdigit()
      Ответить

    Добавить комментарий