Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Anfängerhürden

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] [ 2 ] > 3 < [ 4 ]
020
06.01.2004, 09:02 Uhr
RedEagle



Habe die Antworten nur Kürtz überflogen.
Anber sollte main() nicht int sein???

C++:
int main()
{
//...
return 0;
}


--
MFG RedEagle

Dieser Post wurde am 06.01.2004 um 10:27 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
021
06.01.2004, 10:40 Uhr
Pablo
Supertux
(Operator)


Ja, so sollte es sein.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
022
07.01.2004, 20:02 Uhr
Tommi Bisic



Hallo
Ich hätte noch mal eine Frage und da mir ihr mir schon zuvor so gut geholfen habt würde ich mich nochmal gerne an euch wenden. Ich habe ein Programm entworfen um die Fakultät einer Zahl zu berechnen (zumindest versuche ich es...). Leider stehe ich gerade ziemlich auf dem Schlauch...
Das Programm sieht wie folgt aus:


C++:


#include <iostream.h>

void main ()
{
int z,f;
char c;
do
{
cout<<"Fakultät-Berechnung"<<endl<<endl;
cout<<"Bitte geben sie die Zahl ein"<<endl;
cout<<"die sie als Fakultät berechnen lassen möchten\n";
cin>>z;
for (f=1;f<=z;f++)
{
f=f*;
}
cout<<"Das Ergebniss ist: "<<f<<endl;
cout<<"Wenn sie weitermachen möchten drücken sie J/j"<<endl;
cin>>c;
}while (c=='J' || c=='j');
}
[/cpp]


[/cpp]

Ich habe es mit for (f=1;f<=z;f++) versucht, weiss aber nicht ob das der richtige Weg ist... und vor allem weiss ich nicht wie ich es schaffen soll die Fakultät "auszudrücken"(f=f*??????.Weiss jemand vielleicht Rat?Danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
023
07.01.2004, 20:08 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


fakultätsberechnung ist eigentlich der klassische fall für rekursion

C++:
int fac(int x) {if(x)return 1;else return fac(x-1);}


--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
024
07.01.2004, 20:10 Uhr
Tommi Bisic



Kann ich es nicht mit der For-Schleife machen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
025
07.01.2004, 20:16 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


klar geht auch

C++:
int fac(int x){for(int f=1; x ;--x)f*=x;return f;}


--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
026
07.01.2004, 20:29 Uhr
Tommi Bisic



Also, ich danke dir für deinen Vorschlag aber leider kenne ich den befehl mit der Rekursion nicht.Ich bin noch ein ziemlicher Anfänger.Um ehrlich zu sein habe ich mit der frage gemeint ob mein Entwurf oben mit der For-Schleife funktioniert (so wie er da steht)?Eigentlich müsste es doch funktionieren:
for (f=1;f<=z;f++) fängt bei der 1 an und macht weiter bis z (also die zahl die ich eingegeben habe )und bei der Fakultät ist doch genau das gefragt oder nicht?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
027
07.01.2004, 20:48 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


ach so war gerade zu faul das zu lesen

C++:
//#include <iostream.h> // das nicht mehr verwenden ist veraltet...
#include <iostream>
using namespace std;

int main (){
int i,z,f;
char c;
do{
    cout<<"Fakultät-Berechnung"<<endl<<endl;
    cout<<"Bitte geben sie die Zahl ein"<<endl;
    cout<<"die sie als Fakultät berechnen lassen möchten\n";
    cin>>z;
    for (f=i=1;i<=z;i++)f*=i;
    cout<<"Das Ergebniss ist: "<<f<<endl;
    cout<<"Wenn sie weitermachen möchten drücken sie J/j"<<endl;
    cin>>c;
}while (c=='J' || c=='j');

}    





C++:
for (f=1;f<=z;f++)f=f*;


das kann gar nicht gehen....
mal von f=f* abgesehen brauchst du eine variable zum zwischenspeichern weil du f ja bei jedem schritt inkrementierst und gleichzeitig noch multiplizierst...
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 07.01.2004 um 20:49 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
028
07.01.2004, 20:54 Uhr
Tommi Bisic



Nun ich habe jetzt das versucht,klappt trotzdem nicht.Könntest du mir vielleicht sagen was ich falsch mache?

C++:
#include <iostream.h>

void main ()
{
    int z,f,x;
    char c;
    do
    {
        cout<<"Fakultät-Berechnung"<<endl<<endl;
        cout<<"Bitte geben sie die Zahl ein"<<endl;
        cout<<"die sie als Fakultät berechnen lassen möchten\n";
        cin>>z;
        for (f=1;f<z;f++)
        {
            x=f*(f++);
        }
        cout<<"Das Ergebniss ist: "<<x<<endl;
        cout<<"Wenn sie weitermachen möchten drücken sie J/j"<<endl;
        cin>>c;
    }while (c=='J' || c=='j');
}    

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
029
07.01.2004, 21:00 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


na du musst mal von hand deine schleife durchgehen dann wird dir auch klar was du falsch machst...
also erstens ist x nicht initialisiert... da steht beim start garantiert keine 1 drin so wie sein soll

dann muss f<=z gelten sonst vergisst du den letzten wert und berechnest nur fac(n-1)

x=f*(f++); das setzt x auf f*(f+1);
also beim ersten durchlauf ist es 1*2
dann 2*3 dann 3*4 usw...
was du willst ist das du dein altes x beibehälst und mit dem f multiplizierst...
also x=x*f.... die kurzschreibweise dafür ist x*=f...
jetzt klar
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] [ 2 ] > 3 < [ 4 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: