Kezdőoldal » Számítástechnika » Programozás » Nagyon egyszerű programozási...

Nagyon egyszerű programozási feladat C-ben, kb 2 sorban kérnék segítséget?

Figyelt kérdés

Órán olyan programot írtunk, ami kiszámolja a 8 faktoriálisát (8!), de már nem emlékszem, hogy folytatdott a program:


#include <studio.h>

int main()

{

int i, f;

for( i=1, f=1; i<=8, ++i)

______________________


Eddig emlékszem rá, azt tudom, hogy volt ezután valami ilyesmi: f=*f (?)

Megnéztem az interneten, de ott csak olyan kódot találtam, amiben használják a scanf() függvényt, de nekem fontos lenne anélkül.


Köszi előre is.


2013. szept. 17. 13:22
 1/10 anonim ***** válasza:
100%

f*=i;

}

2013. szept. 17. 13:37
Hasznos számodra ez a válasz?
 2/10 anonim ***** válasza:

Nincs olyan hogy "studio.h".


STanDard Input-Output Library van, stdio.h


A végére pedig illik egy printf("%d",f);

2013. szept. 17. 18:16
Hasznos számodra ez a válasz?
 3/10 anonim ***** válasza:
#1-et kiegészíteném azzal, hogy az f*=i az ekvivalens azzal, mintha f=f*i-t írtál volna helyette.
2013. szept. 17. 20:12
Hasznos számodra ez a válasz?
 4/10 anonim ***** válasza:

Ez a kérdés olyan, mintha vakon akarnál autót vezetni.

Komolyan abszolút semmi logikai érzéked nincs, hogy kitaláld mi lehet a program?

A studio.h-n meg beszartam. :D

2013. szept. 18. 09:58
Hasznos számodra ez a válasz?
 5/10 anonim ***** válasza:

#1 ami nálad "studio.h" az nálunk "stdio.h"

#2 tisztában vagy mi a faktoriális fogalma? Ha a válasz nem, ajánlom, hogy ülj le, és bogarászd ki a matematika tankönyvedből. Ha pedig igen, akkor nincs más dolgod, mit elgondolkozni egy kicsit.


Ha ez nem megy itt egy kis segítség. n! = n*(n-1)*(n-2)*...*2*1


Ha ez még mindig nem elég segítség, a te példádban, 8! = 8*7*6*5*4*3*2*1 = 40320


Ezt nem fogom lekódolni neked, de egy algoritmust kapsz, mert éppen ráérek, és ilyen jó hangulatom van.


f=1;

Ciklus i=1-től, 8-ig, by1

f=i*f;

Ciklus Vége


Fontos megjegyezni, hogy a ciklus elején az f-et muszáj 1-re beállítani, különben az eredményed érthető okokból (minden szám 0 szorosa 0) 0 lesz.


Remélem elég részletes volt a válaszom, és hogy az órai ismereteid alapján implementálni is tudod az algoritmust C nyelven.

2013. szept. 18. 11:57
Hasznos számodra ez a válasz?
 6/10 A kérdező kommentje:

Köszi az értelmes válaszokat.

Igen, félreírtam a studio-t.

Én végzős fizikus vagyok, tisztában vagyok a faktoriális fogalmával. Erre az évemre hagytam az összes programozási tárgyamat, épp azért mert gőzöm sincs róluk, de kötelezőek, így nincs mást tenni..

2013. szept. 18. 17:40
 7/10 anonim ***** válasza:

Akkor elnézésed kérem, csak azt hittem magával a matematikai részével van a gond, mivel igazából itt egy produktumról van szó ami x=1 -től megy 8-ig és i az amit szorzol. A for ciklus is igazából ezt hivatott kiváltani, és a te példádban már ott is volt az f=*f (ami egyébként így azt jelenti, hogy f*f). És azért f*i, mivel az i az amit növelsz minden lépésben.


5. voltam.

2013. szept. 18. 21:37
Hasznos számodra ez a válasz?
 8/10 19András93 válasza:

#include <stdio.h>

#include <stdlib.h>


int main()

{

int i,n,p=1;

printf("n=");

scanf("%i",&n);

for (i=1;i<n+1;++i)

p*=i;

printf("Az elso %i szam szorzata: %i\n",n,p);

system("pause");

return 0;

}

remélem érthető....

2013. szept. 18. 21:52
Hasznos számodra ez a válasz?
 9/10 anonim ***** válasza:

Az f=*f nem f*f. Sztem te kevered az f*=f-fel. Ebben az esetbem a "*=" egy operátor, ami egyeenértékű az f=f*f-fel.

Az első esetben pedig két külön dolog. Van egy értékadás (egyenlőségjel) és egy "*", ami az f címen (mutató) lévő értéket jelenti.

2013. szept. 19. 17:50
Hasznos számodra ez a válasz?
 10/10 A kérdező kommentje:
Köszi a válaszokat!
2013. szept. 21. 11:36

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!