Programska petlja while

1. Petlja while

1.2. Primjer 2.

U programu koji slijedi učinjene su tri pogreške. Pronađite ih bez uporabe računala.

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

 

Rješenje

  • Konstrukcija  (i=1;i<=n;i+=2) karakteristična je za for petlju, a ne za while.
  • Početna vrijednost kontrolne varijable postavlja se ispred naredbe while.
  • Promjena vrijednosti kontrolne varijable događa se unutar bloka while.

Ispravan program izgleda ovako:

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

Razmislite što računa ovaj program!