Mam panowie kolejny problem. Tym razem porzuciłem już rysowanie i postanowiłem zająć się operacjami na liczbach. Wymyśliłem sobie program który wyświetli mi maximum z "k" podanych liczb. Wygląda to tak że po uruchomieniu programu, podaję ile licz chcę wpisać a następnie rozpoczynam wpisywanie liczb po kolei: liczba 1, liczba 2 etc aż ilość tych liczb będzie równa ilości którą wcześniej wpisałem. Do tej pory program wygląda tak:
Kopiuj
#include <stdio.h>
#include <conio.h>
int main ()
{
int i,x,k,p,max;
printf("Sume ile liczb chcesz policzyc?: ");
scanf("%d",&k);
i=1;
p=0;
while (i<=k) {
printf("Podaj liczbe numer %d :",i);
scanf("%d",&x);
i++;
}
i=1;
fflush(stdin);
getch();
return 0;
}
To działa bez problemu. Co teraz chcę zrobić? A więc pomysł oczywiście mam. Po zakończeniu tej pętli while służącej do podawania liczb chcę zrobić ponownie i=1 i wykonać pętle while dopóki i<=k następnie za max przypisać pierwszą z liczb, zwiększyć i o jeden i przejść do następnej liczby, porównać ją z moim maxem i załóżmy że ta liczba druga jest większa więc podstawiam ją pod zmienną max, zwiększam licznik o 1, biorę 3 liczbę porównuję ją z tym moim maxem, jeśli jest mniejsza pozostawiam bez zmian, jeśli większa to ta liczba staje się maxem itd. Wydaje mi się że sam pomysł może być dobry tylko pojawia się problem, w jaki sposób mam się dobrać do tych liczb, szczególnie do tych 2 pierwszych. Gdybyście mogli podpowiedzieć to byłbym wdzięczny.
---EDIT---
Zrobiłem słuchajcie coś takiego:
Kopiuj
#include <stdio.h>
#include <conio.h>
int main ()
{
int i,x,k,max;
printf("Sume ile liczb chcesz policzyc?: ");
scanf("%d",&k);
i=1;
while (i<=k) {
printf("Podaj liczbe numer %d :",i);
scanf("%d",&x);
i++;
}
i=1;
while (i<=k) {
max=x;
i++;
if (max<x) {
max=x;
}
}
printf("\n\nMax z %d liczb wynosi %d",k,max);
fflush(stdin);
getch();
return 0;
}
Ale mimo wszystko to nie działa. Wziąłem debugowanie i w momencie gdy przypisuję pod zmienną max, x to przypisywana zostaje ostatnia liczba jaką wpisuję i ona się nie zmienia i później jako maxa na końcu wyrzuca mi ostatnią wpisaną liczbę. Problem mam wyłącznie z tym że nie wiem w jaki sposób mam się odwołać np do pierwszej wpisanej liczby którą następnie dam jako max i będę porównywał za każdą kolejną wpisaną liczbą. Jeśli Ktoś potrafi pomóc to bardzo bym prosił o wskazówkę.