C Mein erstes C Programm im Terminal starten

BookOfLove

Cadet 3rd Year
Registriert
Dez. 2015
Beiträge
32
Das folgende Programm ist mein erstes Programm in c


Das Programm soll überprüfen, ob eine eingegebene Zahl eine Fibonacci Zahl ist.
Falls ja, soll eine 1 ausgegeben werden, falls nicht eine 0.

1. Ist das Programm korrekt?
2. Mit welcher Eingabe starte ich das Programm im Unix Terminal?
Das Kommando fängt mit gcc an. Muss ich ein Extra Kommando eingeben, um die Ausgabe zu sehen?
Dank im Voraus

EDIT: Das Programm habe ich unten korrigiert. Ich hatte die Ausgaben vergessen
 
Zuletzt bearbeitet:
Deine Funktion (Methode) benötigt einen Rückgabewert (bsp return temp), oder wie soll der printf-Aufruf wissen, was er ausgeben soll.
return wird nur dann nicht benötigt, wenn du einen Datentyp void nimmst, sprich Rückgabewert null.

Wenn du mehrere Werte in C über eine Funktion zurückgeben möchtest, musst du das über "pointer" machen .
Aber das kommt dann in einem höheren Level. (hat nichts mit dem Thema zu tun)

Wie du etwas compilierst und anschließend ausfrühst, findest du doch genügend im Internet. Auf die Schnelle:
http://www.numa.uni-linz.ac.at/Teaching/Lectures/Kurs-C/Script/html/node4.html

oder hier:

https://www.proggen.org/doku.php?id=c:tutorial:firststeps

Allgemein, das wichtigste beim Programmieren sind sinnvolle Namen. In so einen kleinen Projekt, kannst du temp, new, old ect verwenden. Aber wesentlich leichter, wenn du sinnvolle Namen wählst, die etwas schnell ersichtlich machen.
 
Zuletzt bearbeitet:
1) Habe ich nicht überprüft
2) gcc -Wall <Dateiname>.c; danach ./a.out oder wenn Du das Kompilat umbenennen willst gcc -Wall -o <Programmname> <Dateiname>.c und danach ./<Programmname>.
 
Das Problem ist gelöst. Vielen dank
 
Zuletzt bearbeitet:
1) nö.
Du schiebst nur Zahlen rum ohne die alte mit der momentanen zu addieren.
 
Zuletzt bearbeitet:
Wenn ich Zeile 8 zu:
ne = ne+old;
ändere? Funktioniert das dann?
 
Zuletzt bearbeitet:
Übrigens:
Code:
if(a==ne)
    {
    return 1;
    }
   else
    {
    return 0;
    }

ist exakt dasselbe wie
Code:
return a == e;
;)
 
VikingGe

Ich habe mir das Beispiel nicht wirklich angeschaut, aber wenn man "return a == e" schreibt, sollte man die Funktion auf boolean stellen.
Sprich wenn a==e ist, dann passts => wahr => 1. Falls nicht => falsch also eine null.

Muss aber zugeben, bei "int" noch nie ausprobiert zu haben. Sobald ich weiß, ich habe eine Funktion, die nur wahr oder falsch ausgeben soll, mache ich gleich eine boolean. Sollen es mehr als zwei Status werte ausgeben, kommt ein int.
 
Zuletzt bearbeitet:
@pipip wenn man nen bool-Typen zur Verfügung stehen hat, hast du natürlich recht. Anscheinend gibts den schon seit C99 - wusste ich bisher auch nicht.

Ist AFAIK aber wirklich nicht mehr als Kosmetik - der ganze ältere C-Code, über den ich gestolpert bin, verwendet mangels brauchbarer Alternative tatsächlich einfach ints für sowas, inklusive den &&- und ||-Operatoren. Der Test ist dann eben "ist 0" oder "ist nicht 0".
 
Zuletzt bearbeitet:
Könnt ihr mir eine kleine c IDE empfehlen, die für solche Programme geeignet ist?

Habe das Programm online bei ideone.com ausprobiert. Es funktioniert. Danke für die Hilfe
 
Zuletzt bearbeitet:
Dev-Cpp (mit wxWidget oder ohne) ist klein. 10 MB die IDE, 30 MB der Compiler, 80MB das Framework.

Lcc ist ebenfalls sehr kompakt, der Editor ist nicht komfortabel, der Compiler ist aber klasse.
 
Zurück
Oben