Greg Posted June 6, 2009 Report Share Posted June 6, 2009 Witam. Zacznę od tego, iż jestem świeżo upieczonym programistą... Z pomocą kolegi udało nam się napisać dwa programy na zajęcia. Programy niestety wywalają nam błędy i nie bardzo wiemy jak się ich pozbyć. Próbuję kompilować i uruchomić w dev-C . Podejrzewam , że są to jakieś proste błędy jednakże dla mnie jako początkującego jest to problem nie do przeskoczenia. Mam nadzieję, że znajdzie się pomocna osoba i opisze co mam nie tak (może nawet wklei poprawiony kod bez błędów) :) Z Góry dziękuję. CYTAT#include<stdio.h> #include<conio.h> #include<iostream.h> #define n 20 int main(int argc, char* argv[]) { int tab[n]; int i,klucz,wybor,zmienna; randomize(); printf("Generuje %d-elementowa tablice jednowymiarowa\n",n); for(i=0;i<n;i++) { tab=rand()%n; printf("%d,",tab); } printf("\n Podaj klucz:"); scanf("%d",&klucz); printf("MENU:\n"); printf("1 Szukaj pierwszej wartosci zgodnej z kluczem wyswietl ja i jej indeks.\n"); printf("2 Szukaj wszystkich wartosci zgodnych z kluczem wyswietl je i ich indeksy.\n"); printf("Wybieram: "); scanf("%d", &wybor); if (wybor==1) { i=0; do i=i+1; while(klucz!=tab); if (i<n-1) { printf("Wynik: tab[%d]=%d ; indeks:%d",i,tab,i); } if (i>=n) { printf("Podanego klucza nie ma w tablicy"); } } if (wybor==2) { zmienna=0; for(i=0;i<n;i++) { if (tab==klucz) { printf("Wynik: tab[%d]=%d ; indeks:%d\n",i,tab,i); zmienna++; } } if (zmienna==0) { printf("Podanego klucza nie ma w tablicy"); } } getch(); return 0; #include<stdio.h>#include<conio.h> #include<iostream.h> #define n 10 int main(int argc, char* argv[]) { int tab[n][n]; int i,j,a,b,c,d,klucz; randomize(); printf("Generuje %dx%d-elementowa tablice dwuwymiarowa\n",n,n); for(i=0;i<n;i++) { gotoxy(2,5+i); printf("%d",i); gotoxy(5+3*i,3); printf("%d",i); for(j=0;j<n;j++) { tab[j]=rand()%n; gotoxy(5+3*j ,5+i); printf("%d,",tab[j]); } } printf("\n\n Podaj klucz"); scanf("%d", &klucz); printf("\nPodaj zakres jaki chcesz przeszukac:"); do { printf("\nWspolrzedne poczatkowe [0-%d][0-%d]",n-1,n-1); printf("\nPodaj pierwsza wspolrzedna:"); scanf("%d", &a); } while(a<0 ||a>n); do { printf("\nWspolrzedne poczatkowe [0-%d][0-%d]",n-1,n-1); printf("\nPodaj druga wspolrzedna:"); scanf("%d", &b); } while(b<0 ||b>n); do { printf("\nWspolrzedne koncowe [%d-%d][%d-%d]",a,n-1,a,n-1); printf("\nPodaj pierwsza wspolrzedna:"); scanf("%d", &c); } while(c<a ||c>n); do { printf("\nWspolrzedne poczatkowe [%d-%d][%d-%d]",b,n-1,b,n-1); printf("\nPodaj druga wspolrzedna:"); scanf("%d", &d); } while(d<b ||d>n); for(i=a;i<c;i++) { for(j=b;j<d;j++) { if (tab[j]==klucz) { printf("\nWartosc rowna kluczowi: %d, jest pod indeksem: [%d][%d] ",tab[j],i,j ); } } } getch(); return 0; } Link to comment Share on other sites More sharing options...
Komputerowiec Posted June 6, 2009 Report Share Posted June 6, 2009 A powiedz chociaz jakie Ci bledy wywala ;p, to bedzie szybciej. Link to comment Share on other sites More sharing options...
Greg Posted June 6, 2009 Author Report Share Posted June 6, 2009 Spróbuj skompilować ten kod źródłowy to wyskoczą błędy (bez sensu abym pisał tutaj błąd w lini 3 x2 czy błą 32:2). Ogólnie są to błędy jeszcze na etapie kompilacji. Link to comment Share on other sites More sharing options...
Komputerowiec Posted June 6, 2009 Report Share Posted June 6, 2009 Co do 1 programu: #include<stdio.h> #include<conio.h> #include<iostream> #define n 20 int main(int argc, char* argv[]) { int tab[n]; int i,klucz,wybor,zmienna; //randomize(); printf("Generuje %d-elementowa tablice jednowymiarowa\n",n); for(i=0;i<n;i++) { tab[i]=rand()%n; printf("%d,",tab[i]); } printf("\n Podaj klucz:"); scanf("%d",&klucz); printf("MENU:\n"); printf("1 Szukaj pierwszej wartosci zgodnej z kluczem wyswietl ja i jej indeks.\n"); printf("2 Szukaj wszystkich wartosci zgodnych z kluczem wyswietl je i ich indeksy.\n"); printf("Wybieram: "); scanf("%d", &wybor); if (wybor==1) { i=0; do i=i+1; while(klucz!=tab[i]); if (i<n-1) { printf("Wynik: tab[%d]=%d ; indeks:%d",i,tab[i],i); } if (i>=n) { printf("Podanego klucza nie ma w tablicy"); } } if (wybor==2) { zmienna=0; for(i=0;i<n;i++) { if (tab[i]==klucz) { printf("Wynik: tab[%d]=%d ; indeks:%d\n",i,tab[i],i); zmienna++; } } if (zmienna==0) { printf("Podanego klucza nie ma w tablicy"); } } getch(); return 0; } 1.Nie programuje w C, wiec nie wiem co to jest funkcja randomize(), wzialme jaa w komentarz. 2.Iostream nie potrzebuje koncowki .h 3. Gdy piszesz program musisz go konczyc klamra ;] 4. Chyba wszystko dobrze dziala 5. Sprawdzam 2 program Link to comment Share on other sites More sharing options...
Komputerowiec Posted June 6, 2009 Report Share Posted June 6, 2009 P.S. do czego sluzy funkcja gotoxy()? Link to comment Share on other sites More sharing options...
Greg Posted June 7, 2009 Author Report Share Posted June 7, 2009 Dzięki za pomoc. Funkcja gotoxy() służy do przejścia do określonego miejsca w tabeli (współrzędne rząd wiersz) Link to comment Share on other sites More sharing options...
Guest Gelldur Posted June 7, 2009 Report Share Posted June 7, 2009 a nie powinno byc #define n=20? Link to comment Share on other sites More sharing options...
Force Posted June 7, 2009 Report Share Posted June 7, 2009 Jak używasz rand-a to wcześniej trzeba srand-a. gotoxy nie należy do standardu, w Visualu jest, możnat ez sobie ściągnąć, wpisując (uwaga) "c++ gotoxy" do wyszukiwarki. Define jest dobry Baza tysięcy lotnisk: http://airportsbase.com Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.