.
Отговор в тема
Резултати от 1 до 18 от общо 18
  1. #1
    Голям фен
    Регистриран на
    Mar 2005
    Град
    Plovdiv
    Мнения
    872

    Синтактична грешка при C код

    От скоро се занимавам с C и не разбирам още много много. Та, реших да седна да реша една задачка, условието на която е следното:
    "Напишете програма, която брои буквите, цифрите и пунктуационните знаци, въвеждани от потребителя. Въвеждането спира, когато бъде натиснат "ENTER"

    Дотук добре, но при компилирането на програмата ми излиза недружелюбното съобщение още на първия if : "expected primary-expression before '>' " token"

    Ето го и самия код:

    Код:
    #include <stdio.h>
    #include <conio.h>
    
    int main(void)
    
    {
        char ch;
        int bkv=0, cif=0,zap=0;
        
        do {
             printf("vyvedete znaka: ");
             scanf("%c", &ch);
             
             if ((ch ==> 'a') && (ch <== 'Z')) || ((ch  ==> 'A') && (ch <== 'Z')) ch = 1;  
             if ((ch ==> '0') and (ch<=='9')) ch = 2;
             if (ch == ',') ch = 3;
             
             switch(ch) {
                        case 1: 
                           bkv = bkv + 1;
                           break;
    
                        case 2: 
                           cif = cif +1;
                           break;
                           
                        case 3: 
                           zap = zap +1;
                           break;
                        }
             }
        while (ch !='\r');
        
        printf("Bukvi: ");
        printf(" %d", bkv);
        
        printf("\nCifri: ");
        printf(" %d", cif);
        
        printf("\nZapetai: ");
        printf(" %d", zap);
    
        getch();
        getch();    
    }


    Та...ако грешката ми е синтактична, моля да ми я поправите. Ако пък е нещо по-сериозно, моля ви да ми обясните какво не е наред
    Благодаря предварително !

    п.с: И моля ви не ми се нахвърляйте с репликите "Офф много си смотан..". Не всеки се е родил научен

  2. #2
    Код:
    if ((ch ==> 'a')
    Още тук ти е грешката.
    При провека за равно пишеш ==, но ако трябва да е равно или по-голямо/по-малко пишеш просто => =<

    демек така трябва да изглежда:
    Код:
    if ((ch => 'a')

  3. #3
    Голям фен
    Регистриран на
    Mar 2005
    Град
    Plovdiv
    Мнения
    872
    Не става, пак е същото

    Пробвах всякакви варианти и пак неще майка му мръсна...

  4. #4
    Код:
    if ((ch >= 'a')
    Пробвай така.

  5. #5
    Голям фен
    Регистриран на
    Mar 2005
    Град
    Plovdiv
    Мнения
    872
    Хаха... абе по всякакъв начин ги въртях ... и пак не става

    Явно не е грешката при това...

  6. #6
    Цитирай Първоначално написано от Fena
    Хаха... абе по всякакъв начин ги въртях ... и пак не става

    Явно не е грешката при това...
    Задачата интелигентно си я решил. И грешката определно е синтактична. Ама явно не можем да я окрием.

  7. #7
    Голям фен
    Регистриран на
    Mar 2005
    Град
    Plovdiv
    Мнения
    872
    Хм...има друг начин, но е малко бабешки.

    Ръгам в switch-a като case-ве всички цифри от 0 до 9, както и запетайката. Потребителя има възможност да въвежда три неща: цифра, буква, или препинателен знак. След като съм ги отсял цифрите и знака, остана само буквата, което може да я "уловя" като я сложа в deffault-а на switch-a. Така ще избегна въвеждането на всяка буква като отделен case ... хитро, а Кода ще замяза на нещо от тоя сорт:

    Код:
     switch(ch) {
      case  '1':
      case ' 2': 
      case '3':
      case '4':
    
     и така до...
    
     case '9':
       cfr = cfr +1;
    
     case ',':
       zap = zap +1;
     
     и тук вече дифолта:
     
     default: bkv = bkv + 1;
    }

    Така става по-добре, защото ще се размина с if-те. Но трябва да разбера къде ми е грешката, защото ще ме преследва определено занапред

  8. #8
    Голям фен
    Регистриран на
    Mar 2005
    Град
    Plovdiv
    Мнения
    872
    БОЖЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕ ЕЕЕЕЕЕЕ

    По принцип условието на If трябва да се огради ЦЯЛОТО в скоби.... хем внимавах за тея неща...грр


    Значи ще замяза така

    if ((ch => 'a' && ch <= 'Z') || (ch => 'A' && ch <= 'Z') ) ch = 1;



  9. #9
    Цитирай Първоначално написано от Fena
    БОЖЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕ ЕЕЕЕЕЕЕ

    По принцип условието на If трябва да се огради ЦЯЛОТО в скоби.... хем внимавах за тея неща...грр


    Значи ще замяза така

    Код:
    if  ((ch => 'a' && ch <= 'Z') || (ch  => 'A' && ch <= 'Z') ) ch = 1;

    Хаххаха
    как не сме го видели бре! хахХахахА тва ме уби
    верно че трябва да са три скоби да мъ бибина майката!
    е за тва трябва да го видя с хубав компилатор за да го забележа. Намери си компилатор, който като си посочиш отварящата скоба, да ти мига затварящата

  10. #10
    Голям фен
    Регистриран на
    Mar 2005
    Град
    Plovdiv
    Мнения
    872
    Е чак такива екстри не ми трябват

    Ама ще си имам едно наум вече за тея скоби...

  11. #11
    Цитирай Първоначално написано от Fena
    Е чак такива екстри не ми трябват

    Ама ще си имам едно наум вече за тея скоби...
    Оо
    и аз така си мислих ама по-натам като пишеш огромни функции ще се сетиш за това

  12. #12
    if ((ch => 'a' && ch <= 'Z') || (ch => 'A' && ch <= 'Z') ) ch = 1;
    da stane
    if ((ch => 'a' && ch <= 'z') || (ch => 'A' && ch <= 'Z') ) ch = 1;
    !!
    a i moje da optimizira6 malko
    if (((ch ==> 'a') && (ch <== 'z')) || ((ch ==> 'A') && (ch <== 'Z'))) bkv=bkv+1;
    if ((ch ==> '0') and (ch<=='9')) cif=cif+1;
    if (ch == ',') zap=zap+1;
    taka nqma nujda ot switch

    "Какво? Човекът ли е божия грешка? Или бог е грешка на човека?" Ф.Ницше

  13. #13
    mejdudrugoto ti prepora4vam da mine6 kam C++. na men li4no mi haresva mnogo pove4e!

    "Какво? Човекът ли е божия грешка? Или бог е грешка на човека?" Ф.Ницше

  14. #14
    Голям фен
    Регистриран на
    Mar 2005
    Град
    Plovdiv
    Мнения
    872
    Ти как мислиш че ще почна C++ като не съм научил още C...

  15. #15
    Млади господинчо, първо напиши с какъв компилатор компилираш програмата.
    И защо търсиш тази помощ в този форум а не във форум за програмни езици.
    Влез в download.bg и потърси компилатори има хубави.
    Аз лично използвам gcc.
    In god WE trust ! (all others must submit a X.509 certificate)

  16. #16
    Цитирай Първоначално написано от Fena
    Ти как мислиш че ще почна C++ като не съм научил още C...
    Ае човек.И аз така мислих и научих C следкоето научих и C++,но имам много приятели които са учили само C++ и немога да кажа че знаят малко!!!
    In god WE trust ! (all others must submit a X.509 certificate)

  17. #17
    Голям фен
    Регистриран на
    Mar 2005
    Град
    Plovdiv
    Мнения
    872
    C е основата на C++. Предполага се че ако го знаеш, ще ти е по-лесно занапред.

    Същото е и с Паскала. Всеки начинаещ програмист е добре да почне с Паскал, тъй като той е най-елементарен и най-логичния, съответно по-лесен за разбиране. След изучаването му се минава нагоре

  18. #18
    Голям фен
    Регистриран на
    Mar 2005
    Град
    Plovdiv
    Мнения
    872
    Хитрец е тоя малкия

Правила за публикуване

  • Вие не можете да публикувате теми
  • Вие не можете да отговаряте в теми
  • Вие не можете да прикачвате файлове
  • Вие не можете да редактирате мненията си