- Форум
- По малко от всичко
- Информационни технологии
- Синтактична грешка при 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(); }
Та...ако грешката ми е синтактична, моля да ми я поправите. Ако пък е нещо по-сериозно, моля ви да ми обясните какво не е наред
Благодаря предварително !
п.с: И моля ви не ми се нахвърляйте с репликите "Офф много си смотан..". Не всеки се е родил научен![]()
![]()
Още тук ти е грешката.Код:if ((ch ==> 'a')
При провека за равно пишеш ==, но ако трябва да е равно или по-голямо/по-малко пишеш просто => =<
демек така трябва да изглежда:
Код:if ((ch => 'a')
Не става, пак е същото![]()
Пробвах всякакви варианти и пак неще майка му мръсна...![]()
Пробвай така.Код:if ((ch >= 'a')
Хаха... абе по всякакъв начин ги въртях ... и пак не става![]()
Явно не е грешката при това...![]()
Задачата интелигентно си я решил. И грешката определно е синтактична. Ама явно не можем да я окрием.Първоначално написано от Fena
Хм...има друг начин, но е малко бабешки.
Ръгам в 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-те. Но трябва да разбера къде ми е грешката, защото ще ме преследва определено занапред![]()
БОЖЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕ ЕЕЕЕЕЕЕ![]()
По принцип условието на If трябва да се огради ЦЯЛОТО в скоби.... хем внимавах за тея неща...грр
Значи ще замяза така
if ((ch => 'a' && ch <= 'Z') || (ch => 'A' && ch <= 'Z') ) ch = 1;
![]()
![]()
![]()
![]()
![]()
ХаххахаПървоначално написано от Fena
как не сме го видели бре! хахХахахА тва ме уби
верно че трябва да са три скоби да мъ бибина майката!
е за тва трябва да го видя с хубав компилатор за да го забележа. Намери си компилатор, който като си посочиш отварящата скоба, да ти мига затварящата![]()
Е чак такива екстри не ми трябват![]()
Ама ще си имам едно наум вече за тея скоби...![]()
ОоПървоначално написано от Fena
и аз така си мислих ама по-натам като пишеш огромни функции ще се сетиш за това![]()
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
"Какво? Човекът ли е божия грешка? Или бог е грешка на човека?" Ф.Ницше
mejdudrugoto ti prepora4vam da mine6 kam C++. na men li4no mi haresva mnogo pove4e!
"Какво? Човекът ли е божия грешка? Или бог е грешка на човека?" Ф.Ницше
Ти как мислиш че ще почна C++ като не съм научил още C...
Млади господинчо, първо напиши с какъв компилатор компилираш програмата.
И защо търсиш тази помощ в този форум а не във форум за програмни езици.
Влез в download.bg и потърси компилатори има хубави.
Аз лично използвам gcc.
In god WE trust ! (all others must submit a X.509 certificate)
Ае човек.И аз така мислих и научих C следкоето научих и C++,но имам много приятели които са учили само C++ и немога да кажа че знаят малко!!!Първоначално написано от Fena
In god WE trust ! (all others must submit a X.509 certificate)
C е основата на C++. Предполага се че ако го знаеш, ще ти е по-лесно занапред.
Същото е и с Паскала. Всеки начинаещ програмист е добре да почне с Паскал, тъй като той е най-елементарен и най-логичния, съответно по-лесен за разбиране. След изучаването му се минава нагоре![]()
Хитрец е тоя малкия![]()