swee [ Gunslinger ]
Proste a nie chce działać
Na jutrzejsze laborki z infy mam napisać program C++ wyszukujący największą liczbę z tablicy. Banał jakich mało bo tablica nawet nie jest dwuwymiarowa... Pisałem to już na początku tamtego semestru i wszystko hulało a teraz kicha. I co tutaj jest źle? :|
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, char *argv [])
‹
int tab[3] = ‹666,888,111›;
int max(int*tab,int wymiar);
‹
int i;
int naj;
naj = tab[0];
for(i=1;i<10;++i)
‹
if (tab>naj)
naj=tab;
›
return naj;
›
printf("%d",max(tab,1));
system("PAUSE");
return 0;
›
Z resztą czego oni chcą ode mnie, ja strony robię a nie jakieś programy :)
edit. GOL pozamienial nawiasy, a to dziad ;) Wszystkie ostrzaki to te takie wąsy
Toshi to sobie patrz ‹‹‹‹‹‹‹‹‹‹‹‹‹
Z resztą nawiasy sobie poprawić umiem, no bez jaj :)
Toshi_ [ Generaďż˝ ]
Eeee... Może chodzi o to, że stosuje się klamry (‹ ›) zamiast znaków < >? ;]
EDIT: Hahahahahah, GOL automatycznie zamienia te znaki! Niezła lipa :D
Moby7777 [ Generaďż˝ ]
1. Dlaczego funkcja max jest definiowana wewnatrz funkcji main?
2. tworzysz tablice trzech elementow a w wywolaniu printf przekazujesz, że ma tylko jeden...
3. Nieważne z resztą co przekazujesz bo i tak przeszukujesz 10 (for(i = 1; i<10; ++i)). W tym przypadku wychodzisz więc poza zakres tablicy i odczytujesz z pamięci kupę śmieci (jeśli w ogóle system operacyjny Ci na to pozwala).
Swoją drogą jak masz problem z takim programikiem to czarno widzę Twoją przyszłość webmastera...
swee [ Gunslinger ]
Dzięki wielkie, już sobie poprawiam.
Sorry, ale do tej pory flash całkiem dobrze sobie radził bez C, oby tak zostalo.
Moby - a bo C++ jest GUPIE a AS fajny! :) Jedyne słuszne wytłumaczenie.
Moby7777 [ Generaďż˝ ]
swee --> Ale błąd który popełniłeś nie zależy tak naprawdę od języka programowania a zrypanego algorytmu. Czyli we flashu też by nie przeszło... :D
Toshi_ [ Generaďż˝ ]
Teeee... A mi kompilator wyrzucał błedy na temat porównywania zmiennej int ze wskaźnikiem...
Dokładniej chodzi o linie:
if (tab > naj)
naj = tab;
Chodziło ci chyba o porównywanie z każdym elementem tablicy. Od tego masz licznik pętli.
Nie powinno być tak?
if (tab<I> > naj)
naj = tab<I>;
Tylko te < > zamień na [ ], bo "[ i ]" wspaniały GOL odczytuje jako tag pochylający :P
swee [ Gunslinger ]
Już działa, Moby miał racje - definiowanie funkcji w mainie to przejaw ciemnej strony mocy.
edit.
Czyli Gol zmienia znaki, widzisz? Co z tego, ze z mojej winy ;)
Toshi_ [ Generaďż˝ ]
No cooo, zobaczyłem kod, stwierdziłem brak klamer więc podałem diagnozę ;P
Chuck kNorris [ Centurion ]
Toshi_ - to trzeba było tak mu napisać :
if (*(tab+i) > naj) naj = *(tab + i);
swee [ Gunslinger ]
No dobra, a teraz coś trudniejszego: podajemy temu dziadowi liczbę np. '5' i on wyrazy do piątego zamienia na 0, z tych powyżej robi jedynki. Tyle mam i przynajmniej to działa:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int max(int*tab,int wymiar)
‹
int i;
int naj;
naj = tab[0];
for(i=1;i<10;++i)
‹
if (tab>naj)
naj=tab;
›
return naj;
›
int main(int argc, char *argv [])
‹
int tab[100] = ‹6886,988,111,888,4,98,123,87,45,10›;
int pozycja;
printf("%d \n",max(tab,10));
system("PAUSE");
return 0;
›
Chuck kNorris [ Centurion ]
masz gotowe :
#include <iostream>
using namespace std;
int max (int *table, int size)
if(size>0)
int index_max = 0;
for(int i =0; i < size; ++i) if ( *(table+i) > *(table + index_max) ) index_max = i;
return index_max;
return (-1);
int main ( int argc, char *argv [])
int tab[100] = 6886,988,111,888,4,98,123,87,45,10;
int i_max = max(tab, 5);
if ( i_max >= 0 ) cout<<"maximum: " << tab[i_max];
else cout << "BLAD";
return 0;
swee [ Gunslinger ]
hmm ale on ciągle pokazuje tylko maksimum, nici z podmieniania wyrazow na 0 i 1
Chuck kNorris [ Centurion ]
nie zrozumiałem myślałem ze nie działa :P
tu funkcja do tego co chcesz:
void insert(int *table, int index, int size, int value_1, int value_2)
for(int i = 0; i < index && i < size; ++i) *(table + i) = value_1;
for(int i = index; i < size ; ++i) *(table + i) = value_2;
table - wskaźnik na tablice
index - do którego elementu sa wstawiane wartości value_1 (powyżej znajda sie wartości value_2)
size - rozmiar tablicy