C jezik, nizovi, pomoc

Član
Učlanjen(a)
17.04.2010
Poruka
70
pozdrav ljudi
imam problem
pokušavam napraviti program koji će od unijetih 10 brojeva ispisati koji je najmanji, najveći, sumu tih svih brojeva, te onda da ispiše parne brojeve i na kraju sumu tih parnih brojeva
ja sam nešto napravio ali sad imam problem kod ovih parnih brojeva
kod izgleda ovako

#include <stdio.h>


void main ()
{
int i,sum,broj,min,max,parni;
printf("\nUpiši 1. broj = ");
scanf ("%d", &broj);
sum=broj;
min = broj;
max = broj;
parni=broj;



for (i=2; i<=10; i++)
{
printf ("\nUpiši %d.broj = ", i);
scanf ("%d", &broj);
parni=min;


sum=sum+broj;
if (broj > max)
max = broj;

if (broj < min)
min = broj;
}

do
{
if(parni%2==0)
{
printf("%d\n", parni);
}
parni++;
}while (parni<=max);



printf("\nNajmanji broj je %d", min);

printf("\nNajveci broj je %d", max);


printf("\nSuma je %d", sum);


return;
}


problem je u tome što ja sad ne znam kako da izvedem sumu od tih parnih brojeva
i još jedan problem je taj što kad upišem neke brojeve npr 200, 500 ,1000..
on izbacuje parne brojeve skroz od 200 pa do 1000..
sta da izvedem da mi izbacuje brojeve koje sam prethodno unio u niz.. ? ?
imajte razumijevanja početnik sam.
pozdrav
 
Učlanjen(a)
24.05.2011
Poruka
202
Tvoj program ti ispisuje uglavnom (kazem uglavnom zato sto se mogu uneti takvi brojevi da ovo ne vazi) sve parne brojeve od minimuma do maksimuma (kao sto si ti rekao ako uneses 200 i on bude min i 1000 i on bude max, tvoj program ce upravo to uraditi).
To se desava zato sto u pocetku u promenjivu parni postavljas min i onda koristis do-while petlju koja ide sve dok ne dodjes do max.

U tekstu kazes da zelis
  1. najmanji
  2. najveći
  3. sumu tih svih brojeva
  4. ispiše parne brojeve
  5. na kraju sumu tih parnih brojeva
pa tako i radi...a ne da prvo stampas parne a tek onda max i min...
Ako zelis da prvo stampas najmanji i najveci pa sumu i tek onda parne brojeve onda ih moras (parne brojeve) cuvati negde do tada (jer da bi odredio prve tri stvari moras uneti sve brojeve).
To mozes uraditi ne vise nacina...ako znas sta je niz onda mozes da ih smestis u jedan niz i nakon toga da ih odatle stampas ili da napravis jednu string promenjivu u koju ces da upisujes parne brojeve kada na njih naidzes i na kraju samo da je istampas.



Zakljucak:
  • do-while ti nije potrebna
  • nemas promenjivu u koju ces da racunas sumu parnih brojeva
  • u for petlji umesto "parni=min;" napisi da proveri da li je boj paran
    • ako jeste da ga doda u sumu parnih bojeva (ne u sum koja ti racuna sumu svih brojeva nego u sum_parnih)
    • i da ga doda u niz ili string
Probaj da napises sad ispravan kod i postavi da vidimo kako ti ide
 
Član
Učlanjen(a)
21.09.2009
Poruka
243
pozdrav ljudi
imam problem
pokušavam napraviti program koji će od unijetih 10 brojeva ispisati koji je najmanji, najveći, sumu tih svih brojeva, te onda da ispiše parne brojeve i na kraju sumu tih parnih brojeva
ja sam nešto napravio ali sad imam problem kod ovih parnih brojeva
kod izgleda ovako

#include <stdio.h>


void main ()
{
int i,sum,broj,min,max,parni;
printf("\nUpiši 1. broj = ");
scanf ("%d", &broj);
sum=broj;
min = broj;
max = broj;
parni=broj;



for (i=2; i<=10; i++)
{
printf ("\nUpiši %d.broj = ", i);
scanf ("%d", &broj);
parni=min;


sum=sum+broj;
if (broj > max)
max = broj;

if (broj < min)
min = broj;
}

do
{
if(parni%2==0)
{
printf("%d\n", parni);
}
parni++;
}while (parni<=max);



printf("\nNajmanji broj je %d", min);

printf("\nNajveci broj je %d", max);


printf("\nSuma je %d", sum);


return;
}


problem je u tome što ja sad ne znam kako da izvedem sumu od tih parnih brojeva
i još jedan problem je taj što kad upišem neke brojeve npr 200, 500 ,1000..
on izbacuje parne brojeve skroz od 200 pa do 1000..
sta da izvedem da mi izbacuje brojeve koje sam prethodno unio u niz.. ? ?
imajte razumijevanja početnik sam.
pozdrav
Evo C koda koji ispunjava zahtjeve programa:
C:
#include <stdio.h>

int main() {
    int brojevi[10];
    int i;

    printf("Unesite 10 brojeva:\n");
    for (i = 0; i < 10; i++) {
        scanf("%d", &brojevi[i]);
    }

    int min = brojevi[0];
    int max = brojevi[0];
    int suma = brojevi[0];
    int suma_parnih = brojevi[0];

    for (i = 1; i < 10; i++) {
        if (brojevi[i] < min) {
            min = brojevi[i];
        }

        if (brojevi[i] > max) {
            max = brojevi[i];
        }

        suma += brojevi[i];

        if (brojevi[i] % 2 == 0) {
            suma_parnih += brojevi[i];
        }
    }

    printf("Najmanji broj: %d\n", min);
    printf("Najveci broj: %d\n", max);
    printf("Suma svih brojeva: %d\n", suma);

    printf("Parni brojevi: ");
    for (i = 0; i < 10; i++) {
        if (brojevi[i] % 2 == 0) {
            printf("%d ", brojevi[i]);
        }
    }
    printf("\n");

    printf("Suma parnih brojeva: %d\n", suma_parnih);

    return 0;
}

Ovaj program traži korisnika da unese 10 brojeva. Zatim prolazi kroz unesene brojeve i izračunava najmanji broj, najveći broj, sumu svih brojeva, sumu parnih brojeva te ispisuje te rezultate.
 
Natrag
Top