Problem z programem c++

0

Ostatnio zacząłem pisać program. Niestety ma jakiś błąd, a ja nie umiem go znaleźć. Pomoże ktoś?

#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main();
{
	srand(time(NULL));
	int a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;
	cout << "Zacząć kopać?";
	cout << "/n1.Tak/n2.Nie";
	cin >> a;
	if (a==1)
	cout b << rand()%10;
	cout c << rand()%10;
	cout d << rand()%10;
	cout e << rand()%10;
	cout f << rand()%10;
	cout g << rand()%10;
	cout h << rand()%10;
	cout i << rand()%10;
	cout j << rand()%10;
	do
	{
		cout << "Podaj zmienną k"
		cin >> k;
	} while (k==b)
	do
	{
		cout << "Podaj zmienną l";
		cin >> l;
	} while (l==c);
	do 
	{
		cout << "Podaj zmienną m";
		cin >> m;
	} while (m==d);
	do
	{
		cout << "Podaj zmienną n";
		cin >> n;
	} while (n==e)
	do
	{
		cout << "Podaj zmienną o"
		cin >> o
	} while (o==f)
	do
	{
		cout << "Podaj zmienną p"
		cin >> p
	} while (p==g)
	do 
	{
		cout << "Podaj zmienną q"
		cin >> q
	} while (q==i)
	do 
	{
		cout << "Podaj zmienną r"
		cin >> r
	} while (r==j)

	if (a==2)
	(PAUSE)	
}

Tu macie kod

0

Kod ok, ale jaki błąd? To jest -- co chcesz osiągnąć, a co się dzieje?

Bo w samym kodzie to błędów widzę kilka, ale takich, które wskazuje Ci też kompilator...

0

/data/user/0/ru.iiec.cxxdroid/files/newfile.cxx1: error: expected unqualified-id
{
^
1 error generated.

Zrobiłem na kompilatorze, który pokazuje błędy i wyszło coś takiego ∆
|

Ma to być program losujący 9 cyfr od 0-9 a gracz potem zgaduje po kolei każdą cyfrę np.

Wylosowane cyfry: 1,3,2,4,9,5,4,9,1
Gra:
Pierwsza liczba to 2
Nie więc próbujesz tak póki nie zgadniesz
Pierwsza liczba to 1
Tak więc przechodzisz do kolejnej cyfry i tak póki całego nie zgadniesz.

0

Czy na końcu 6 linijki powinien być ;?

int main();
0
koszalek-opalek napisał(a):

Kod ok, ale jaki błąd? To jest -- co chcesz osiągnąć, a co się dzieje?

Bo w samym kodzie to błędów widzę kilka, ale takich, które wskazuje Ci też kompilator...

A mógłbyś wskazać gdzie jest błąd?

Trisolaris napisał(a):

Czy na końcu 6 linijki powinien być ;?

int main();

/data/user/0/ru.iiec.cxxdroid/files/newfile.cxx6: error: expected ';' after expression
cout b << rand()%10;
^
;
/data/user/0/ru.iiec.cxxdroid/files/newfile.cxx2: warning: expression result unused [-Wunused-value]
cout b << rand()%10;
^~~~
/data/user/0/ru.iiec.cxxdroid/files/newfile.cxx6: error: expected ';' after expression
cout c << rand()%10;
^
;
/data/user/0/ru.iiec.cxxdroid/files/newfile.cxx6: error: expected ';' after expression
cout d << rand()%10;
^
;
/data/user/0/ru.iiec.cxxdroid/files/newfile.cxx6: error: expected ';' after expression
cout e << rand()%10;
^
;
/data/user/0/ru.iiec.cxxdroid/files/newfile.cxx6: error: expected ';' after expression
cout f << rand()%10;
^
;
/data/user/0/ru.iiec.cxxdroid/files/newfile.cxx6: error: expected ';' after expression
cout g << rand()%10;
^
;
/data/user/0/ru.iiec.cxxdroid/files/newfile.cxx6: error: expected ';' after expression
cout h << rand()%10;
^
;
/data/user/0/ru.iiec.cxxdroid/files/newfile.cxx6: error: expected ';' after expression
cout i << rand()%10;
^
;
/data/user/0/ru.iiec.cxxdroid/files/newfile.cxx6: error: expected ';' after expression
cout j << rand()%10;
^
;
/data/user/0/ru.iiec.cxxdroid/files/newfile.cxx29: error: expected ';' after expression
cout << "Podaj zmienną k"
^
;
/data/user/0/ru.iiec.cxxdroid/files/newfile.cxx16: error: expected ';' after do/while statement
} while (k==b)
^
;
/data/user/0/ru.iiec.cxxdroid/files/newfile.cxx16: error: expected ';' after do/while statement
} while (n==e)
^
;
/data/user/0/ru.iiec.cxxdroid/files/newfile.cxx9: warning: expression result unused [-Wunused-value]
cout b << rand()%10;
~ ^ ~~~~~~~~~
/data/user/0/ru.iiec.cxxdroid/files/newfile.cxx2: warning: expression result unused [-Wunused-value]
cout c << rand()%10;
^~~~
/data/user/0/ru.iiec.cxxdroid/files/newfile.cxx9: warning: expression result unused [-Wunused-value]
cout c << rand()%10;
~ ^ ~~~~~~~~~
/data/user/0/ru.iiec.cxxdroid/files/newfile.cxx2: warning: expression result unused [-Wunused-value]
cout d << rand()%10;
^~~~
/data/user/0/ru.iiec.cxxdroid/files/newfile.cxx9: warning: expression result unused [-Wunused-value]
cout d << rand()%10;
~ ^ ~~~~~~~~~
/data/user/0/ru.iiec.cxxdroid/files/newfile.cxx2: warning: expression result unused [-Wunused-value]
cout e << rand()%10;
^~~~
/data/user/0/ru.iiec.cxxdroid/files/newfile.cxx9: warning: expression result unused [-Wunused-value]
cout e << rand()%10;
~ ^ ~~~~~~~~~
/data/user/0/ru.iiec.cxxdroid/files/newfile.cxx2: warning: expression result unused [-Wunused-value]
cout f << rand()%10;
^~~~
/data/user/0/ru.iiec.cxxdroid/files/newfile.cxx9: warning: expression result unused [-Wunused-value]
cout f << rand()%10;
~ ^ ~~~~~~~~~
/data/user/0/ru.iiec.cxxdroid/files/newfile.cxx2: warning: expression result unused [-Wunused-value]
cout g << rand()%10;
^~~~
/data/user/0/ru.iiec.cxxdroid/files/newfile.cxx9: warning: expression result unused [-Wunused-value]
cout g << rand()%10;
~ ^ ~~~~~~~~~
/data/user/0/ru.iiec.cxxdroid/files/newfile.cxx2: warning: expression result unused [-Wunused-value]
cout h << rand()%10;
^~~~
/data/user/0/ru.iiec.cxxdroid/files/newfile.cxx9: warning: expression result unused [-Wunused-value]
cout h << rand()%10;
~ ^ ~~~~~~~~~
/data/user/0/ru.iiec.cxxdroid/files/newfile.cxx2: warning: expression result unused [-Wunused-value]
cout i << rand()%10;
^~~~
/data/user/0/ru.iiec.cxxdroid/files/newfile.cxx9: warning: expression result unused [-Wunused-value]
cout i << rand()%10;
~ ^ ~~~~~~~~~
/data/user/0/ru.iiec.cxxdroid/files/newfile.cxx2: warning: expression result unused [-Wunused-value]
cout j << rand()%10;
^~~~
/data/user/0/ru.iiec.cxxdroid/files/newfile.cxx9: warning: expression result unused [-Wunused-value]
cout j << rand()%10;
~ ^ ~~~~~~~~~
18 warnings and 12 errors generated.

Usunąłem i 18 błędów i 12 errorów

4

@Adm Programer: Poczytaj jaka jest składnia c++, tutaj głownym problemem jest losowe wstawianie ; i klamer w kodzie ;)

0
Trisolaris napisał(a):

@Adm Programer: Poczytaj jaka jest składnia c++, tutaj głownym problemem jest losowe wstawianie ; i klamer w kodzie ;)

Dobra dzięki nie ukrywam mam z tym problem gdzie wstawiać gdzie nie

2

Spróbuj tworzyć swój kod z pomocą kompilatora. Napisałeś cały kod i próbujesz wszystko na końcu skompilować dostając przy tym mnóstwo błędów, a powinieneś za każdym razem po dodaniu każdej linijki kodu kompilować i sprawdzać czy wszystko jest dobrze. Poza tym ten kod można znacząco skrócić, nie musisz używać tylu zmiennych - możesz na przykład dodać funkcję wczytującą dane od użytkownika.

2

@Adm Programer:

Dobra dzięki nie ukrywam mam z tym problem gdzie wstawiać gdzie nie

średnik stawiasz

Na końcu każdej instrukcji np:

int zmienna=20;
void funkcja(); //deklaracja funkcji
int tablica[20];
char znak;

średnika NIE stawiasz

jak stosujesz nawiasy klamrowe {} (wyjątkiem są klasy) i gdy stosujesz nawiasy zwykłe ()

int funkcja()
{
return obiekt;
}

for(int i=0; i<20; ++i)
{
//to zrób cośtam
}

if(warunek==true)
{
//to zrób cośtam
}

klasa to jedyny wyjątek

class klasa
{
public:

};

wszystkiego nie wypiszę... ale to są tylko przykłady

1

Zobacz to samo ale dosłownie kilka wierszy:

#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

int main()
{
    srand(time(NULL));
    cout<<"Zaczac kopac?"<<"\n1.Tak\n2.Nie\nTwoj wybor: ";
    int value;
    for(cin>>value;value==1;value=0)
    {
    	for(int i=1;i<=9;++i)
    	{
    		for(int rnd=rand()%10;(cout<<"Podaj wartosc nr "<<i<<"("<<(char)('k'+i-1)<<")"<<": ")&&(cin>>value)&&(value!=rnd);) {}
		}
	}
	return 0;
}
1
zkubinski napisał(a):
if(warunek==true)
{
//to zrób cośtam
}

Z powyższego kodu wynika że zmienna warunek ma typ bool więc można sobie zapisać if(warunek), ale jak widać chcesz się upewnić czy rzeczywiście ma wartość true dla tego porównujesz z true,
ale warunek==true też ma wartość true lub false więc należy sprawdzić czy jest prawdą czyli (warunek==true)==true,
ale (warunek==true)==true też ma wartość true lub false więc należy sprawdzić czy jest prawdą czyli ((warunek==true)==true)==true,
ale ... daj znać jak skończysz poprawiać.

zkubinski napisał(a):

@Adm Programer:

jak stosujesz nawiasy klamrowe {} (wyjątkiem są klasy) i gdy stosujesz nawiasy zwykłe ()

To nie jest prawdą, np:

class Foo { int foo; } f;
class Bar { int bar; } tb[]={1,2,3};
class Pkt { int x,y; } *pkt();
0

@_13th_Dragon:

Z powyższego kodu wynika że zmienna warunek ma typ bool więc można sobie zapisać if(warunek), ale jak widać chcesz się upewnić czy rzeczywiście ma wartość true dla tego porównujesz z true,

rozumiem co mówisz ale gdzieś czytałem, że standard zaleca taką praktykę z uwagi na to, że zwiększa czytelność kodu

To nie jest prawdą, np:

class Foo { int foo; } f;
class Bar { int bar; } tb[]={1,2,3};
class Pkt { int x,y; } *pkt();

zależy jak to rozpatrujesz, jeżeli piszesz definicję funkcji zaraz pod klasą to ok, jeżeli w osobnym pliku, to już inna historia. Poza tym podałem przykłady, wszystkich możliwości nie rozpatrywałem - ale dobrze, że zwracasz uwagę

1 użytkowników online, w tym zalogowanych: 0, gości: 1