• Здраво и добредојдовте на форумот на IT.mk.

    Доколку сеуште не сте дел од најголемата заедница на ИТ професионалци и ентузијасти во Македонија, можете бесплатно да се - процесот нема да ви одземе повеќе од 2-3 минути, а за полесна регистрација овозможивме и регистрирање со Facebook и Steam.

Не сака да се искомпајлира како што треба

  • Ја почнал/а темата
  • #1

Blagojce

Gaining Experience
26 декември 2007
890
70
Прилеп
Blagojce's setup  
Processor & Cooler
Intel Core i5-3570 3.40GHz
Storage
2 TB
RAM
8 GB
Monitor
ASUS 24" LED Full HD
OS
Windows 10
Вака напишав еден код(овој подолу) не ми треба за семинарска или некакви други работи туку програмирањево си го работам во слободно време.Па реков да напишам код за некоја мала игра како што видов една слична на интернет ама нешто не сака да се изкомпајлира како што сакам јас. Каде ми е грешката?

Код:
#include <iostream>
#include <string>

using namespace std;

string odgovor;
int bodovi;

int main()
{
         bodovi=0;
         cout<<"1.Koj e glaven grad na Makedonija?" <<endl;
         cin>>odgovor;
         while ( odgovor!="Skopje" || odgovor!="skopje")
         {
              cout<<"Gresen odgovor.";
         }
         cout<<"Tocen odgovor osvoivte 1 poen." <<endl;
         bodovi++;
         cout<<"Imate vkupno " <<bodovi <<" bodovi.";
         return 0;
}
Знам дека може со if или со index[] ама вака сакав да ми излезе.Проблемот е во тоа што секогаш ми ја покажува функцијата од while Грешен одговор.
 

vasildb

Intern
17 април 2007
209
6
И во while треба да внесиш за читање на повторен одговор, во случај да е грешен претходно внесениот одговор

cin>>odgovor;
while ( odgovor!="Skopje" || odgovor!="skopje")
{
cout<<"Gresen odgovor.";
cin>>odgovor;
}
Не те разбрав баш што ти треба, ама пробај вака.
 

''TcM>>

Intern
6 јануари 2008
961
39
aa zosto ima ili izmegu koa i dvete se isti.
mislam na ova: while ( odgovor!="Skopje" || odgovor!="skopje")
a ne samo eden.
dobro i taka i taka e tocno ali ne znam...
inace sea za sea go znam samo C pa kolku so mozam da zabelezam mislam deka karakteri (bukvi) se belezea so samo edno znakce --- ' a ne so navodnici --- "

Se obidov sea neso da kazam ali aj :p
 

vasildb

Intern
17 април 2007
209
6
Овде во наводници се стринговите, или низа од карактери.
Има или помеѓу затоа што C++ е case sensitive, и разликува мала и голема буква. Затоа мора да се земат и двете точни решенија во предвид.
 
  • Ја почнал/а темата
  • #5

Blagojce

Gaining Experience
26 декември 2007
890
70
Прилеп
Blagojce's setup  
Processor & Cooler
Intel Core i5-3570 3.40GHz
Storage
2 TB
RAM
8 GB
Monitor
ASUS 24" LED Full HD
OS
Windows 10
Со cin>>odgovor имав и претходно пробано но не сакаше да се искомпајлира пак како што треба(т.е. ако првиот пат дадеш погрешен одговор и потоа го дадеш точниот одговор тоа пак го прикажува како погрешен одговор), а ова во наводниците се стринговите. Јас мислам дека треба да се стави return ама никако да ми текни на што return, или можеби грешам?
 

DaciSS

Gaining Experience
3 јануари 2008
949
288
San Francisco
www.linkedin.com
#include <iostream>
using namespace std;
void main()
{
int zbir;
string odgovor;
cout<<"Koj e glaven grad na Makedonija?\n";
zbir=0;
do
{ cin>>odgovor;
zbir=zbir+n;
}
while ( (odgovor!="Skopje") || (odgovor!="skopje"));
cout<<"Pogodivte od "<<zbir<<endl;
}


nemam c++ momentalno instalirano, ali bi trebalo da raboti ova moevo

...znavi vo tvojata treba toa cin na odgovor da go stavis vnatre vo ciklusot, vaka ti samo 1 odgovor vnesuvas i toj ako e tocen ke se ispecati, a ako pogodis, togas odgovor ke ti vleze vo beskonecna jamka
 
  • Ја почнал/а темата
  • #7

Blagojce

Gaining Experience
26 декември 2007
890
70
Прилеп
Blagojce's setup  
Processor & Cooler
Intel Core i5-3570 3.40GHz
Storage
2 TB
RAM
8 GB
Monitor
ASUS 24" LED Full HD
OS
Windows 10
#include <iostream>
using namespace std;
void main()
{
int zbir;
string odgovor;
cout<<"Koj e glaven grad na Makedonija?n";
zbir=0;
do
{ cin>>odgovor;
zbir=zbir+n;
}
while ( (odgovor!="Skopje") || (odgovor!="skopje"));
cout<<"Pogodivte od "<<zbir<<endl;
}


nemam c++ momentalno instalirano, ali bi trebalo da raboti ova moevo

...znavi vo tvojata treba toa cin na odgovor da go stavis vnatre vo ciklusot, vaka ti samo 1 odgovor vnesuvas i toj ako e tocen ke se ispecati, a ako pogodis, togas odgovor ke ti vleze vo beskonecna jamka
Јас мислам дека твојот код(покрај тоа што не сака да се искомпајлира) има грешка во тоа што ти го ставаш cin во do, а тоа е да прави нешто додека е различно од Скопје.
 

StenmarC

Intern
16 април 2007
716
13
stenmarc.blog.com.mk
Blagojce, cin мора да биде внатре во циклусот за да можеш да внесуваш цело време додека не се внесе правиот збор.
 
  • Ја почнал/а темата
  • #9

Blagojce

Gaining Experience
26 декември 2007
890
70
Прилеп
Blagojce's setup  
Processor & Cooler
Intel Core i5-3570 3.40GHz
Storage
2 TB
RAM
8 GB
Monitor
ASUS 24" LED Full HD
OS
Windows 10
Да ама така не сака да се искомпајлира бидејќи и "n" не му е декларирана.
 
  • Ја почнал/а темата
  • #11

Blagojce

Gaining Experience
26 декември 2007
890
70
Прилеп
Blagojce's setup  
Processor & Cooler
Intel Core i5-3570 3.40GHz
Storage
2 TB
RAM
8 GB
Monitor
ASUS 24" LED Full HD
OS
Windows 10
do
{ cin>>odgovor;
zbir=zbir+n;
}
while ( (odgovor!="Skopje") || (odgovor!="skopje"));
cout<<"Pogodivte od "<<zbir<<endl;
}
Како може да печати cin>>odgovor(а не грешка) се додека while...?
Забележав дека и го нема повикан #include<string>, но и со string не сака да се искомпајлира како што треба.
 
  • Ја почнал/а темата
  • #13

Blagojce

Gaining Experience
26 декември 2007
890
70
Прилеп
Blagojce's setup  
Processor & Cooler
Intel Core i5-3570 3.40GHz
Storage
2 TB
RAM
8 GB
Monitor
ASUS 24" LED Full HD
OS
Windows 10
Visual C++ и Code::Blocks, ама во последно време го користам Visual C++.Мислиш дека е до компајлерот, јас не верувам се друго компајлира во ред???
 

Alexandar

Gaining Experience
21 мај 2007
2,514
90
Не треба #include <cstring> ?
P.S.: Почетник сум во C++, може и да грешам, не ме фаќајте за збор :)
 

vasildb

Intern
17 април 2007
209
6
#include <iostream>
#include <string>

using namespace std;

int main()
{
int zbir;
string odgovor;
cout<<"Koj e glaven grad na Makedonija?n";
zbir=0;
do
{
cin>>odgovor;
zbir++;
}
while ( (odgovor!="Skopje") || (odgovor!="skopje"));
cout<<"Pogodivte od "<<zbir<<endl;
return 0;
}
Ај пробај вака.
 
  • Ја почнал/а темата
  • #16

Blagojce

Gaining Experience
26 декември 2007
890
70
Прилеп
Blagojce's setup  
Processor & Cooler
Intel Core i5-3570 3.40GHz
Storage
2 TB
RAM
8 GB
Monitor
ASUS 24" LED Full HD
OS
Windows 10
aleksandar_te не треба <cstring>, стрингот добро си е напишан. vasildb пробав и така ама не сака.:( Не може да прави (do) нешто како што е cin>>odgovor додека (while) е...
 

Fatihh

Gaining Experience
14 април 2007
372
50
Скопје
Fatihh's setup  
Processor & Cooler
Intel Core i7 - 6700
Motherboard
ASUS TUF
Storage
2TB Western Blue + 480GB SSD A-DATA
PSU
SPIRE SILENTEAGLE 550W REAL
RAM
4x 8GB DDR4
Video card
STRIX GTX 1050Ti 4GB
Case
Case Cooler Master K380
Mouse
Mouse Genesis kypton 500
Keyboard
A4 TEC B318
Monitor
Samsung 27" 4K
OS
win10
ѕверче уште ли не успеа... тие што ти ги пратив преку MSN точни се кај другарми пробав компајлира ....
 
  • Ја почнал/а темата
  • #19

Blagojce

Gaining Experience
26 декември 2007
890
70
Прилеп
Blagojce's setup  
Processor & Cooler
Intel Core i5-3570 3.40GHz
Storage
2 TB
RAM
8 GB
Monitor
ASUS 24" LED Full HD
OS
Windows 10
Извинете што не Ви пишав до сега не бев во можност. Проблемот го решив со strcmp.
Еве како би изгледал кодот:

Код:
#include <iostream>
#include <string>

using namespace std;

char answer[20];
int бодови;

int main()
{
         бодови=0;
         cout<<"1.Главен град на Македонија?" <<endl;
         cin>>answer;
       char v1[20] = "Скопје";
       char v2[20] = "скопје";
   
       bool done = false;

         while (!done)
         {
          if((strcmp(answer, v1) == 0) || (strcmp(answer, v2) == 0))             
             break;         
          else
          {
             cout<<"Грешен одговор, обидете се повторно: ";
             cin>>answer;
          }
          }
          cout<<"Точен одговор, освоивте 1 поен." <<endl;
          бодови++;
}
 

Нови мислења

Последни Теми

Статистика

Теми
43,562
Мислења
823,366
Членови
28,067
Најнов член
Dacmac92
На врв Дно