[ EmulatE @ 19.02.2013. 23:02 ] @
Pozdrav da ne duzim pricu znaci c jezik je u pitanju headeri i na valja mi suma u zadatku evo o cemu je rec treba mi suma odnosno zbir reciprocnih vrednosti neparnih brojeva znaci s=1/1+1/3+1/5+1/n meni na unetu vrednost 3 kaze resenje 0.33 a na 5 0.2 umesto 1.33 i 1.2
Code:
#include<math.h>
float suma (int n) {
float s=0;
int i;
for (i=0; i<n; i++);
{
if (i%2==1)
s=s+1./i;
}
return s;
}
float hipotenuza (int a, int b)
{
float c;
c=sqrt(a*a+b*b);
return c;
}


ovo je header a evo i glavni program

Code:
#include <conio.h>
#include <stdio.h>
#include "Heder.h"
main ()
{
int n,a,b;
float s,c;
printf ("Unesi n,a,b\n");
scanf ("%d%d%d", &n,&a,&b);
s=suma(n);
c=hipotenuza(a,b);
printf ("Suma je %f hipotenuza je %f",s,c);
getch ();
}
[ Mihajlo Cvetanović @ 20.02.2013. 09:21 ] @
Problem je u znaku ; koji stoji na kraju linije za for petlju. Zbog njega for petlja se provrti, ali ne uradi ništa (prazna petlja), a onda se tačno jednom izračuna jedan sabirak, i to onda bude rezultat. Ukloni tačku-zarez.
[ djoka_l @ 20.02.2013. 09:30 ] @
Kao što ti je Mihajlo rekao, plus uslov za izlaz i inicijalnu vrednost brojača u petlji nije dobar. Ne treba da se počne od 0 (mada u konkretnom slučaju ne smeta jer se uzimaju samo neparni brojevi a 0 je parna), a treba da se završi kad i dostigne n (i<=n)

Code (c):

for (i=1; i<=n; i++) {
   if (i%2==1)
      s+=1./i;
}
 


a može i da se uštedi koji red:

Code (c):

for (i=1; i<=n; i+=2) s+=1./i;
 

[ EmulatE @ 20.02.2013. 09:50 ] @
Hvala na odgovoru stvarno lose sam prosao kroz kod :D