» Eine kleine Änderung zerstört ein Programm aber wieso ?

Klassendurchschnitt errechenenNeuen Thread eröffnenNeue Antwort erstellenBrauche eure Hilfe .. brauche jemanden der C kann
AutorNachricht
Beobachter 
Anmeldedatum: 29.04.2011
Beiträge: 5
29.04.2011, 19:43
zitieren

Hallo liebe Mitglieder,
ich bin gerade dabei C zu lernen und muss sagen , dass ich mich eigentlich recht schnell eingearbeitet habe.

Ich habe ein einfaches Programm geschrieben , dass die Fakultaeten berechnet.

Genutzt habe ich eine for Schleife :

#include <stdio.h>
#include <stdlib.h>


int main()
{
int i;
int x;
int fak;

printf("Fakultaeten Rechenprogramm\n");
printf("Geben Sie eine Zahl ein um die Fakultaeten zu berechnen\n\n");

scanf("%d", &i);
fak=i;
;
for(x=i-(i-1);x<i;x++) /* Läuft praktisch so zb. 3! = 3*(3-1)*(3-2) */
{

fak = fak*x;


}
printf("Ergebnis : %d! = %d\n",i, fak);
system("pause");
return 0;
}

Meine eigentliche Frage ist :

Was macht der Compiler wenn ich fak=i; deklariere , bevor scanf(...) kommt?
Ich kriege total falsche Werte wenn ich zuerst fak=i; schreibe und dannach scanf(..)

Warum muss fak=i; also nach scanf (...) kommen?


Ich hoffe jemand kann mir weiter helfen

Gruß und ein Danke im Vorraus



pn
Junior 
Anmeldedatum: 03.05.2011
Beiträge: 77
03.05.2011, 21:45
zitieren

Deine Variablen sind beim anlegen undefiniert. D.h. sie enthalten u.U. irgendwelche Zufallswerte. Besser ist es ihnen bei der Deklaration gleich def. Werte mitzugeben, also z.B. so:


int i=2;
int x=0;
int fak=0;

Wenn du erst fak=i machst, wird fak der Wert zugewiesen der beim Anlegen von int i angegeben ist, also ggf. auch undefiniert. Wenn du erst scanf machst bekommt fak den eingelesenen Wert von scanf und ist damit auf jeden Fall definiert.


 1x  bearbeitet
pn
Beobachter 
Anmeldedatum: 29.04.2011
Beiträge: 5
03.05.2011, 21:51
zitieren

@CppCoder

Ja das verstehe ich schon, aber mein x ist ja abhängig von i.
fak ist auch abhängig von i. Reicht es nicht , wenn i deffiniert wurde.

Probleme macht das ganze erst, wenn ich fak=i; deffiniere bevor scanf ( ) kommt.

Sobald ich fak = i nach scanf ( ) schreibe klappt alles wunderbar


pn
Junior 
Anmeldedatum: 03.05.2011
Beiträge: 77
03.05.2011, 21:56
zitieren

Habe meine erste Anwort noch mal ergänzt, ich glaube wir haben uns da gerade überlagert mit den Beiträgen.

pn
Beobachter 
Anmeldedatum: 29.04.2011
Beiträge: 5
03.05.2011, 22:01
zitieren

Oke verstanden klingt einleuchtend. Die Reihenfolge in der man bestimmte "Operationen" ist also doch enorm wichtig.

Nochmals vielen Dank!


pn
Gast 
03.05.2011, 22:01
zitieren

Mach mit!

Wenn Dir die Beiträge zum Thread "Eine kleine Änderung zerstört ein Programm aber wieso ?" gefallen haben oder Du noch Fragen hast oder Ergänzungen machen möchtest, solltest Du Dich gleich bei uns anmelden:



Registrierte Mitglieder genießen die folgenden Vorteile:
✔ kostenlose Mitgliedschaft
keine Werbung
✔ direkter Austausch mit Gleichgesinnten
✔ neue Fragen stellen oder Diskussionen starten
✔ schnelle Hilfe bei Problemen
✔ Bilder und Videos hochladen
✔ und vieles mehr...


Neuen Thread eröffnenNeue Antwort erstellen
Ähnliche BeiträgeRe:
Letzter Beitrag
Das alte thema Wasser aber wieso.. ?
Hallo Liebe Honda Fahrer...... :hrhr: So also ich habe im moment innen noch alles draussen da ich eigentlich lackieren wollte aber naja nichts desto troz musste ich den wagen fahren in den letzten tagen nach ein paar anderen probleme.. Letzen paar...
von Daniel.Werkman
8
434
14.01.2011, 11:11
tmaey
Endstufe geht nicht an?? aber wieso... -.-
Hallo zusammen, ich habe mir heute das JVC KD-R421 gekauft und nu stehe ich vor dem problem das meine endstufe nicht mehr angeht das wäre die Phase Evolution RS 4. sicherungen habe ich alle gecheckt alle in Ordnung. ich habe eine kleine skizze auf dem...
von Smokee
5
2.807
13.05.2011, 12:05
Ralf
Test gefahren und kaufte eine 2018 Elantra SEL 2.0L Auto! Eine sehr kleine Sorge - ständig piepen?
Hallo zusammen! Froh, Mitglied der Hyundai-Community zu sein! Gestern habe ich einen 2018 Hyundai Elantra 2.0L Auto getestet und wurde zur Finanzierung dafür zugelassen. Ich bin bereit, es abzuholen und die Anzahlung am Dienstag zu leisten! Ich habe...
von JadenGomes2
0
67
19.08.2019, 16:38
JadenGomes2
Kleine Auswertung welches Anti-Virus Programm neue Viren zuerst erkennt
Ich bekomme manchmal E-Mails mit Virus-Dateianhängen, die ich über https://www.virustotal.com/ prüfe. Virus Total prüft die Datei mit allen relevanten Virenscannern. Da die Viren per E-Mail meist sehr neu sind, erkennt nicht jeder Virenscanner den Virus....
von mgutt
12
1.287
29.03.2016, 12:57
mgutt
honda civic ep3 type-r mein motor macht zicken aber wieso nur???
hey leute hab da mal eine frage und zwar was kann es sein das meine drehzahl so stark schwankt. die motorkontrollleuchte brennt aber nur weil meine lambda kaputt war erneuert wurde und der fehler nur gelöscht werden muss. das ist alles also nicht falsch...
von stylerpezzo89
1
374
16.12.2014, 19:53
rsamd
Programm um Videos auf eine Lautstärke zu regulieren.
Hi, habe ein Problem und zwar hab ich viele verschieden Videos jedoch haben alle eine andere Lautstärke das eine Leiser das andere Lauter, gibt es da ein Programm das ich es hin bekomme alle auf eine Lautstärke zu...
von hAiZa
0
188
29.01.2009, 21:31
hAiZa
Antenne EJ9 .... eine neue aber was für eine ???
so mir geht die antenne bei mir aufen nerv ... is die ganz draußen is die optik vom auto im eimer, is sie fast drin is der empfang nich so doll ... so kann man den nich eine andere Antenne einfach einbauen ... gibs welche für de scheibe, wenn ja...
von tuning_civic
3
1.447
21.12.2007, 15:21
tuning_civic
Eine kleine Frage
Also Ich hab vor meinen Ventildeckel neu zu lackieren weil er einfach schon extrem dreckig und abgefuckt ausschaut :!: Also was würdet ihr mir empfehlen ausbauen oder im Motorraum alles abkleben und drinnen lackieren ?? Und muss ich auf was...
von -=Flo=-
16
1.877
27.06.2006, 16:14
Oli&Eddy
Eine kleine Fragenliste zum MA9
Guten morgen alle zusammen! Seit gestern habe ich einen 96er Civic ma9, 1.5i 90ps unterm hintern. Rentnerfahrzeug, zweiter Besitzer, 105Tkm. Um das Auto ein wenig meinen Vorstellungen anzupassen, möchte ich erstmal ein paar Infos sammeln und freue...
von dg11
6
371
01.12.2011, 10:07
p600trabant
Datenträger voll ausgelastet 99/100% aber nur wenige kleine Prozesse?!
Ich mache gerade einen Rechner von einem Bekannten flott und ich vermute die Festplatte ist quasi hinüber. Aber die Auslastung verstehe ich trotzdem nicht. Ich mein welche Platte ist denn bei 10 MB/s (bzw im Screenshot ja sogar nur KB/s) voll...
von mgutt
9
301
29.09.2017, 09:22
mgutt
© 2004 - 2025 www.programmierer-forum.de | Communities | Impressum |