Program Kradniemy

Program Kradniemy
GE
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 10 lat
  • Postów:6
0

Witam!

Potrzebuję pomocy! Napisałem taki oto program o nazwie Kradniemy, ale nie chce on dobrze działać.

KOD:

Kopiuj
#include <stdio.h>
#include <iostream>
#define il 100	
#define pp 500	
using namespace std;

void main(){
	int muzeum[il][2];	
	int plecak[il];		
						
						
	int plecak_wolny=pp;	
	int i, j, k, suma=0;
	bool jest_w_plecaku, jest_lup;

	for(i=0;i<il;i++){
		muzeum[i][0]=rand()%1000+1;	
		muzeum[i][1]=rand()%100+1;	
		plecak[i]=-1;	

		suma+=muzeum[i][0];
		cout<<muzeum[i][0]<<","<<muzeum[i][1]<<"\t";
		if(i%10==9) cout<<endl;
	}
	cout<<"Wartosc eksponatow: "<<suma<<endl;


	do{
		j=0;
		jest_lup=0;
		suma=0;
		for(i=0;i<il;i++) if(muzeum[i][0]>suma && muzeum[i][1]<=plecak_wolny){
			k=0;
			jest_w_plecaku=0;
			while(plecak[k]!=-1){	
				if(plecak[k]==i){	
					jest_w_plecaku=1;	
					break;			
				}
				k++;
			}
			if(!jest_w_plecaku){
				j=i;	
				jest_lup=1;	
				suma=muzeum[j][0];	
			}
		}
		if(jest_lup){
			while(plecak[k]!=-1) k++;	
			plecak[k]=j;				
			plecak_wolny-=muzeum[j][1];	
		}
	}
	while(jest_lup);

	cout<<"\nW plecaku mamy:\n";
	k=0;i=0;suma=0;
	while(plecak[k]!=-1){	
		cout<<k<<". "<<plecak[k]<<": "<<muzeum[plecak[k]][0]<<","<<muzeum[plecak[k]][1]<<endl;
		suma+=muzeum[plecak[k]][0];
		i+=muzeum[plecak[k]][1];
		k++;
	}
	cout<<"Wartosc plecaka: "<<suma<<"\nObjetosc zrabowanych eksponatow: "<<i<<endl;
	cout<<"Zostalo miejsca w plecaku: "<<plecak_wolny<<endl;
	getchar();
}

Kiedy próbuję skompilować wyświetla się takie coś:
user image

Bardzo proszę o pomoc!

kod do znaczników <code>... - msm

edytowany 1x, ostatnio: msm
szweszwe
Kod umieszczaj w odpowiednich znacznikach!
NI
  • Rejestracja:około 11 lat
  • Ostatnio:około 5 lat
  • Lokalizacja:Warszawa
  • Postów:535
0

brak return 0;
brak biblioteki time.h
brak srand(time(0));


Programuje i programuje ,przychodzi człowiek "o niższej inteligencji" i rok pracy zmarnowany
edytowany 1x, ostatnio: Niikelion
msm
W C++ return 0 jest nieobowiązkowe, a nawet gdyby było, to to zupełnie inny błąd niż widać na screenie.
szweszwe
  • Rejestracja:ponad 11 lat
  • Ostatnio:dzień
  • Lokalizacja:Kraków
  • Postów:1694
2

Funkcja main powinna zwracać int a Ty masz tam void - zamień go na int. Należy też dodać bibliotekę <cstdlib> w której jest używany przez Ciebie rand().

msm
Łał, w tym samym momencie wysłaliśmy (timestampy obu postów są dokładnie równe).
szweszwe
Dokładnie co do sekundy ale szefostwo ma pierwszeństwo :D
Patryk27
@msm: timestampy cd. sekundy czy milisekundy? ;P
msm
Unixowe timestampy, dokładniejszych danych niestety nie mamy :<
msm
Administrator
  • Rejestracja:około 16 lat
  • Ostatnio:5 miesięcy
2

Kompilator sam napisał co mu się nie podoba przecież:

Pierwszy komunikat - [Error] '::main' must return 'int'. Bardziej bezpośrednio się nie da.

Drugi - [Error] 'rand' was not declared in this scope. Taki błąd oznacza że nie dołączyłeś odpowiedniego nagłówka, więc googlujesz za 'rand C++' i znajdujesz np. to: http://www.cplusplus.com/reference/cstdlib/rand/
Znajduje się w cstdlib, więć na górę pliku musisz dołączyć

#include <cstdlib>

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.