Programska petlja while

2. Zadaci za vježbu

1. U programima koji slijede učinjena je pogreška zbog koje programi ne rade ispravno. Ne zaboravite da pogreška ne mora uvijek biti sintaktička nego može biti  i logička. Pronađite pogrešku bez uporabe računala!

a)

#include <stdio.h>
int main()
{
     int s=0, n;
     printf ("\nUpisite broj: ");
     scanf("%d",&n);
     while (i=1;i<=n)
     {
           s+=i;
           i+=3;
     }
     printf("Zbroj je %d",s);
     return 0;
}

 

 b)

#include <stdio.h>
int main()
{
     int s=0, i=1, n, znam;
     printf ("\nUpisite broj: ");
     scanf("%d",&n);
     while (n!=0)
     {
          znam=n%10;
          s+=znam;
     }
     n/=10;
     printf("Zbroj je %d",s);
     return 0;
}

 

Nakon ispravljenih pogreški odgovorite: Što rade prikazani programi?

2. Bez upisivanja programa odgovorite na pitanje: Kada se ovaj program izvrši, što će se ispisati na zaslonu?

#include <stdio.h>
int main()
{
     int i=1,f=1,n=6;
     while(i<=n)
     {
           f*=i;i++;
     }
     printf("\n%d! = %d",n,f);
     return 0;
}

3. Napišite program koji će od korisnika tražiti upisivanje jednoga prirodnog broja. Program treba upisani broj rastaviti na proste faktore i ispisati ih.

 

Testni primjeri

Ulaz:      12

Izlaz:     12=1*2*2*3


4. Napišite program koji će na zaslonu ispisati najveću i najmanju znamenku učitanog broja.

Testni primjeri

Ulaz:      2583476

Izlaz:     Najmanja znamenka je 2, a najveca 8


5. Napišite program koji omogućuje upisivanje broja u binarnom brojevnom sustavu. Program treba upisani broj pretvoriti u dekadski i rezultat ispisati na zaslonu.

Testni primjeri

Ulaz:      10110101

Izlaz:     181

Rješenja zadataka od 3. do 5. potražite na e-sferi.