Ĺadny brzuch
mam zadanie:
napisac program wczytujacy 10 liczb z klawiatury a nastepnie wskazujacy najmniejsza ze wpisanych.
Wszystko ladnie, gdyby byly to liczby wpisane w kod programu, inaczej jednak ma sie sprawa z wpisywanymi z klawiatury.
Stworzylem petle ktora wczytuje 10 liczb z klawiatury i cos co wedlug mnie powinno wskazac najmniejsza liczbe- tylko tego nie robi :blink:
W czym jest blad ??
#include <stdio.h>
int main(void)
{
int n;
int i;
int tab[]={};
int min = tab[0];
printf("podaj 10 liczb: \n");
for(n=0;n<10;n++)
{
scanf("%i",&i);
}
for(i=1;i<n;i++)
{
if(tab[i]<min)
min = tab[i];
}
printf("Najmniejsza liczba to %i\n",min);
getch();
}
zadanie jest conajmniej banalne, nie podam Ci wprost rozwiązania, ale zobacz jak rozwiązałeś wczytywanie liczb:
for(n=0;n<10;n++)
{
scanf("%i",&i);
}
po wykonaniu pętli w zmiennej 'i' masz tylko ostatnią wpisaną liczbę, a poza tym powinno być "%d" a nie "%i". przemyśl jeszcze raz od początku ten program, narysuj sobie algorytm na kartce, pomyśl. powodzenia :)
//Edit: no i jednak podali Ci gotową odpowiedź, trudno ;)
Użytkownik Kabar edytował ten post 28 grudzień 2005, 21:38
Namieszałeś tam ostro... Nawet nie trzeba niektórych liczb zapisywać. Tylko te które spełniają warunek że są mniejsze od poprzedniej. Oto kod:
#include <stdio.h> int main(){ int min, temp; //input for(int i=0; i<10; i++){ scanf("%d", &temp); if(i == 0){ min = temp; }else if(i > 0 && temp < min){ min = temp; } } //output printf("%d", min); getch(); return 0; }
...
Ja wprawdzie nie wiem jak wygladaja "zadki" w C (ani zadki tudziez inne kuperki samego C - zreszta nie sadze zebym chcial sie dowiedziec ;) ) - ale - do przemyslenia dwie linijki :
int tab[]={}; int min = tab[0];Oraz petelke gdzie tab jest uzywana,
a potem programik :
#include <stdio.h> int main(void) { int tab[]={}; printf( "size of tab = %d\n", sizeof(tab) ); return 0; }
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
napisac program wczytujacy 10 liczb z klawiatury a nastepnie wskazujacy najmniejsza ze wpisanych.
Wszystko ladnie, gdyby byly to liczby wpisane w kod programu, inaczej jednak ma sie sprawa z wpisywanymi z klawiatury.
Stworzylem petle ktora wczytuje 10 liczb z klawiatury i cos co wedlug mnie powinno wskazac najmniejsza liczbe- tylko tego nie robi :blink:
W czym jest blad ??
#include <stdio.h>
int main(void)
{
int n;
int i;
int tab[]={};
int min = tab[0];
printf("podaj 10 liczb: \n");
for(n=0;n<10;n++)
{
scanf("%i",&i);
}
for(i=1;i<n;i++)
{
if(tab[i]<min)
min = tab[i];
}
printf("Najmniejsza liczba to %i\n",min);
getch();
}
zadanie jest conajmniej banalne, nie podam Ci wprost rozwiązania, ale zobacz jak rozwiązałeś wczytywanie liczb:
for(n=0;n<10;n++)
{
scanf("%i",&i);
}
po wykonaniu pętli w zmiennej 'i' masz tylko ostatnią wpisaną liczbę, a poza tym powinno być "%d" a nie "%i". przemyśl jeszcze raz od początku ten program, narysuj sobie algorytm na kartce, pomyśl. powodzenia :)
//Edit: no i jednak podali Ci gotową odpowiedź, trudno ;)
Użytkownik Kabar edytował ten post 28 grudzień 2005, 21:38
Namieszałeś tam ostro... Nawet nie trzeba niektórych liczb zapisywać. Tylko te które spełniają warunek że są mniejsze od poprzedniej. Oto kod:
#include <stdio.h> int main(){ int min, temp; //input for(int i=0; i<10; i++){ scanf("%d", &temp); if(i == 0){ min = temp; }else if(i > 0 && temp < min){ min = temp; } } //output printf("%d", min); getch(); return 0; }
...

Ja wprawdzie nie wiem jak wygladaja "zadki" w C (ani zadki tudziez inne kuperki samego C - zreszta nie sadze zebym chcial sie dowiedziec ;) ) - ale - do przemyslenia dwie linijki :
int tab[]={}; int min = tab[0];Oraz petelke gdzie tab jest uzywana,
a potem programik :
#include <stdio.h> int main(void) { int tab[]={}; printf( "size of tab = %d\n", sizeof(tab) ); return 0; }