Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

suma faktorijela

[es] :: C/C++ programiranje :: C/C++ za početnike :: suma faktorijela

[ Pregleda: 4656 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

peca89bg
Beograd

Član broj: 202034
Poruke: 354
..178.212.adsl.dyn.beotel.net.



+6 Profil

icon suma faktorijela06.07.2009. u 15:04 - pre 180 meseci
ovako, hocu da uradim program koji ce da mi racuna sumu faktorijela od 1 do n, primer za unet broj 5 da izracnuna: 1! + 2! + 3! + 4! + 5!

#include <stdio.h>
int suma (int n)
{
int rez = 0, i;
for (i = 1; i <= n; i++)
rez += i;
return rez;
}

main()
{

int br, s, fak;
fak = 0;
printf("Unesi broj: \n");
scanf("%d", &br);
for (s; s >= br; s--)
fak *= s;
printf("suma faktorijela je: %d.\n", suma(fak));
}


kada ga prevedem i startujem izbaci mi da e suma faktorijela = 0

jel moze neko da mi pomogne? plsssssssss
 
Odgovor na temu

lestrigonac
Lestrigonac
Futog, Novi Sad

Član broj: 145470
Poruke: 247
*.adsl-4.sezampro.yu.



+2 Profil

icon Re: suma faktorijela06.07.2009. u 16:09 - pre 180 meseci
Prva greska je sto si stavio da je fak=0 i non stop mnozis sa nulom i to je naravno nula :)
Nisam ni pokusao da ispravim ovaj tvoj kod, posto mi se cini da ti je malko pogresan nacin na koji si radio :) Razmisli samo sta ti uradis sa ovom funkcijom koju si napravio?

Code:

    #include<stdio.h>
    main(){
    
    int suma = 0, br;
    int i;

    printf("Unesite broj :");
    scanf("%d", &br);

    for(i=1; i<=br; i++){
        int z;
        int ab = 1;
        for(z=1; z<=i; z++)
            ab  *= z;
        suma += ab;
        }
    printf("Suma je: %d", suma);

    }


Kod je na brzinu i iz glave, mozda malo preterao sa promenljivima, ali nemam bas vremena sada, sredi kod da lici vise na c i jos razmisli o problemu.... Pokusaj da koristis dibager da vidis sta se desava u samom kodu, kako se koja premenljiva menja :)

Pozdrav...
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: suma faktorijela06.07.2009. u 16:12 - pre 180 meseci
Razlog zbog kojeg ti prikazuje 0 je taj što si stavio da je fak = 0. Pretpostavljam da treba da stoji 1, a i promenljiva s ti nije čak ni inicijalizovana. Ali čak i kad to ispraviš nećeš dobiti tačan rezultat. Da bi izračunao sumu faktorijela moraš da radiš naizmenično jedno množenje i jedno sabiranje, to je elegantnije rešenje. Druga opcija je da računaš svaki faktorijel posebno, i da rezultat dodaješ glavnom zbiru, to je očiglednije rešenje. Kod tebe nema ni jedno ni drugo, nego ide prvo jedan faktorijel, pa onda nekakvo čudno sabiranje.
 
Odgovor na temu

lestrigonac
Lestrigonac
Futog, Novi Sad

Član broj: 145470
Poruke: 247
*.adsl-a-1.sezampro.yu.



+2 Profil

icon Re: suma faktorijela06.07.2009. u 17:13 - pre 180 meseci
On je racunao sve faktorijele s' tim da je sve njih pogubio i ostao mu samo poslednji koji je isto nula, jer je fak=0; I kada to ispravi nece dobiti ono sto treba kao sto si rekao jer ce on odredjenji broj puta sabirati nesto sto nikako nije to sto mu treba :)

Pozdrav...
 
Odgovor na temu

peca89bg
Beograd

Član broj: 202034
Poruke: 354
..178.212.adsl.dyn.beotel.net.



+6 Profil

icon Re: suma faktorijela06.07.2009. u 17:29 - pre 180 meseci
Code:

#include <stdio.h>
int faktorijel (int g)
{
  int rez = 1;
  for (g; g >=1; g--)
    rez *= g;
  return rez;
}

main()
{

  int n, br, brojac, suma, s;
  printf("Unesi broj:\n");
  scanf("%d", &n);
  printf("Unesite %d celih brojeva: \n", n);
  suma = 0;
    for (brojac = 1; brojac <=n; brojac++)
      {
    scanf("%d", &br);
    s = faktorijel(br);
    suma += s;
      }

  printf("Faktorijel zbira za %d brojeva koje ste uneli je: %d.\n", n, suma);
  if (suma%2 == 0)
    printf("Dobijeni zbir je paran.\n");
  else 
    printf("Dobijen zbir je neparan.\n");

}


evo resio sam problem!

[Ovu poruku je menjao X Files dana 07.07.2009. u 11:24 GMT+1]
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: suma faktorijela

[ Pregleda: 4656 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.