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!