suma iloczynów [C]

punk_koper
Użytkownik
Użytkownik
Posty: 5
Rejestracja: 21 maja 2005, o 19:55
Płeć: Mężczyzna
Lokalizacja: Brzeg
Podziękował: 3 razy

suma iloczynów [C]

Post autor: punk_koper »

witam, muszę napisać taki program:
Napisz program, który dla zadanej (wczytanej) liczby n oblicza wartość ∑k=1..n Πj=0..k-1(1-(j/n)).
wymysliłem cos takiego:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(int argc, char *argv[])



{
float n, i, k, l;
float suma=1, iloczyn=1;
printf( "
Podaj wartosc n: ");
scanf( "%f", &n );
{
for (i=1; i<=n; i++)
{
for(k=1; k<=i; k++)
{
for(l=1;l<=k;l++)
{
iloczyn=iloczyn*(1-(1/l));

}
}



suma=suma+iloczyn;
}

}


printf("%f", suma);
system("PAUSE");
return 0;
}
ale nie działa....tzn kompiluje sie ale za kazdym razem wypisuje 1...
Mógłby ktoś pomóc?
smiechowiec
Użytkownik
Użytkownik
Posty: 374
Rejestracja: 21 cze 2007, o 11:28
Płeć: Mężczyzna
Lokalizacja: Łostowice
Pomógł: 146 razy

suma iloczynów [C]

Post autor: smiechowiec »

Trochę trudno się połapać co jest co, ale jeśli dobrze zrozumiałem Twój wzór to można by spróbować kod zmodyfikować np. tak

Kod: Zaznacz cały

int main(int argc, char *argv[]) {
  int j, k, n;
  float suma = 0, iloczyn;
  printf( "
Podaj wartosc n: ");
  scanf( "%d", &n );

for (k = 1; k <= n; k++) {
  iloczyn = 1.0;
  for(j = 0; j < k; j++) {
    iloczyn = iloczyn * (1.0 - ((float)j / n));  
  }
  suma += iloczyn;
  
}

printf("suma:%g", suma);
//system("PAUSE"); 
return 0;
}
punk_koper
Użytkownik
Użytkownik
Posty: 5
Rejestracja: 21 maja 2005, o 19:55
Płeć: Mężczyzna
Lokalizacja: Brzeg
Podziękował: 3 razy

suma iloczynów [C]

Post autor: punk_koper »

super, tylko jeszcze w 10 linijce trzeba zamienić n na k i wtedy to jest dokładnie to co chciałem, dzięki!-- 26 listopada 2010, 13:02 --A, mea culpa, wszystko jest dobrze, to ja źle przeczytałem polecenie:), Jeszcze raz dzięki!
ODPOWIEDZ