Witam,
Dziś zacząłem zabawe na stronce codingame, i jestem przy takim zadaniu:
https://www.codingame.com/ide/puzzle/temperatures
Trzeba napisać kod który sposród podanych liczb dodatnich i ujemnych wybierze tą najbliższą zeru a jeśli to liczba ujemna to zamieni na dodatnią, póki co mam taki kod:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main()
{
int n; // the number of temperatures to analyse
scanf("%d", &n); fgetc(stdin);
char temps[257]; // the n temperatures expressed as integers ranging from -273 to 5526
fgets(temps, 257, stdin); // the n temperatures expressed as integers ranging from -273 to 5526
int tempx = 5527;
for (int i = 0; i < n; i++){
if(temps[i] > 0 && temps[i] < tempx)
tempx = (int)temps[i];
fprintf(stderr,"%d, ", temps[i]);
}
printf("%d", tempx);
return 0;
}
Niby wybiera najniższą liczbe ale mam dziwny output, wybiera sposród liczb takich jak 32,45,50... a z tego co przeczytałem output powinien być mniej więcej 1,-2,-8,5...
Trzeba jakoś zamienić tą tablice charów na inty żeby dało mi to takie outputy a zabardzo nie wiem jak, z tą liczbą ujemną też zbytnio nie wiem, bo jeśli dam żeby znalazło najmniejszą to znajdzie np -105 i zamieni na 105 a to już najniższa nie będzie. Ogólnie znam elementy tego języka bo już trochę z nim obcuję ale nadal mam problemy z kreatywnością, z wymyśleniem rozwiązania dla problemów, dlatego staram się właśnie podszkalać na rozwiązywaniu różnych problemów, ale dalej mi trochę opornie idzie ale może z czasem to się zmieni. Wiecie może jak mógłbym zadziałać z tym problemem ?