CwCity Board >>> Programmier Sprachen >>> Kylix, C/C++ etc. >>> [ERLEDIGT] C Anfängerfrage : 35 / 7 sind 8?
[ERLEDIGT] C Anfängerfrage : 35 / 7 sind 8?

Seiten: 1
Verfasst am: 31.07.2013 um: 10:53 Uhr
 

Hallo ;) 


Ich habe angefangen, C zu erlernen und habe basierend auf ein paar Kleinigkeiten, die ich auf einem Tutorial zwar gelesen habe, aber scheinbar noch nicht begriffen habe, eine C-Implementierung gefertigt, die allerdings einen Rechenfehler begeht - der aber irgendwo auf dem Quellcode basieren muss.

Der Benutzer wird in der Konsole nach seinem Alter gefragt. Soweit so gut, funktioniert auch. Das Alter wird in der Variable Jahre abgelegt und wird - basierend auf der allseits bekannten Aussage, ein Jahr Hundealter entspräche 7 Menschenjahren - durch 7 geteilt., dieses Ergebnis wird in der Variable JahreHund abgelegt. Beide diese Variablen sind vom Datentyp Integer.

Wenn ich als Alter 35 eingebe ( um einen Wert zu haben, der Modulo 0 durch 7 teilbar ist ), wird mir allerdings weisgemacht, das entspräche 8 Hundejahren. 35 / 7 sind 8 ? Bei mir ergibt das 5.

Meinen Quellcode gibt es hier - hier nochmal die Konsolenausgabe bei Eingabe von 35 als Alter :



Wie kommt er auf 8?

BrokenSoul1979

// EDIT //

Hat sich bereits erledigt. Die Variablendeklaration und -Definition war an der falschen Stelle.

Hier der zumindest fürs erste korrekte Code :


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

int main(int argc, char *argv[])
{
    int Jahre;
    int JahreHund;

    printf("Gebe bitte ein, wie alt du bist : ");
    scanf("%d",&Jahre);
    fflush(stdin);
    printf("\nDu bist %i Jahre alt.\n",Jahre);
    JahreHund = Jahre / 7;
    printf("\nDas macht %i Hundejahre\n", JahreHund);
    system("PAUSE"); // Auf Tastendruck warten, erst dann beenden
    return 0;
}




Letzte Änderung am: 31.07.2013 um:11:48 Uhr durch: brokensoul1979
 



patrick246
Verfasst am: 06.08.2013 um: 11:13 Uhr
 
Cw Posting Dude
Poster Teufel
Beiträge: 148
SPAM:
0% Spam
Mein Tipp: Lern gleich C++. Du kannst dort objektorientiert programmieren und die Standardbibliothek ist meiner Meinung nach viel besser als die von C (Dynamisch allokierte Arrays vs. std::vector, C-Strings (char-arrays) vs. std::string, selber schreiben vs. <algorithms>) 
Wenn du High-Level programmieren willst eignen sich C++, C# und Java viel besser dazu. C ist eher etwas für Betriebssysteme, Treiber und Mikrocontroller.

In C++ macht es übrigens nichts aus, wo genau in der Funktio die Variablen deklariert werden, C will sie ganz oben in der Funktion haben.

- p246



 

 

Verfasst am: 06.08.2013 um: 15:17 Uhr
 

Ich bleibe erstmal bei C ... hat "interne" Gründe ;)

Zitat Wikipedia : 
  
Zitat von Wikipedia

C# ist eine vom Softwarehersteller Microsoft im Rahmen seiner .NET-Strategie entwickelte Programmiersprache.
 
Schon alleine deshalb fällt C# komplett aus ... ich will nichts Plattformspezifisches. 

Java kommt für mich auch nicht in Frage, bliebe zumindest plattformübergreifend nur noch C++ ... und damit beschäftige ich mich später. C ist erstmal wichtiger. ;) 




Letzte Änderung am: 06.08.2013 um: 15:47 Uhr durch: brokensoul1979
 

consider
Verfasst am: 06.08.2013 um: 15:35 Uhr
 
Dr. CwCity.de
Community God
Beiträge: 7217
SPAM:
0% Spam
Ja, da streiten sich die Geister. Das ewig leidige Thema. Im Grunde ist es aber Wurscht, was zuerst.

Erst C und dann die OOP dazulernen? Von den Roots zu den Erleichterungen? Oder anders herum? Erst C++ und C ist ja eh ne Teilmenge? Ich find das egal. besonders, wenn jemand schon Vorkenntnisse hat.

Ich finde nur, dass man zum Thema c++ einfach mehr im Netz findet.

 

patrick246
Verfasst am: 06.08.2013 um: 16:50 Uhr
 
Cw Posting Dude
Poster Teufel
Beiträge: 148
SPAM:
0% Spam
Guck dir der Vollständigkeit halber mal das Mono-Framework an, C# an sich ist nämlich nicht Plattform-spezifisch.

Mit C++ anfangen hat die Vorteile, dass man sich gleich in das Objektorientierte eindenken kann, man schleppt dann in späterem Programmcode kein alter C-Code mit herum. printf, scanf (das übrigens unsicher ist!) verwendet man in C++ nicht mehr, du kennst zwar die Syntax, die Laufzeitumgebung ist aber komplett anders zu verwenden (die C Funktionen gibts nämlich noch!)
Ich denke, wenn du schon ein paar Programme in C geschrieben hast, dann wäre es ein guter Zeitpunkt mit C++ anzufangen. Du kennst die Syntax, und lernst dann gleich, wie man mit C++ arbeitet.
C++ kann man als Erweiterung zu C sehen, warum dann auf die Vorteile der Erweiterung verzichten?

- p246



 

 

Verfasst am: 06.08.2013 um: 18:22 Uhr
 

scanf() ist unsicher wegen Buffer Overflow ... ich weiß. ;)


Was meine Vorgehensweise angeht ... ich fang lieber bei dem an, was zuerst da war, um mich dann zum Nachfolger hochzukraxeln.


Ich habe auch nicht erst die Definition der Wurzelrechnung gelernt, um anschliessend zu erfahren, dass 1+1 = 2 ... ;)



From basement to sky ... not from sky to basement.

 

chrissehi
Verfasst am: 24.08.2013 um: 13:38 Uhr
 
Cw Greenhorn
Blutiger Anfänger
Beiträge: 10
SPAM:
0% Spam
Ich habe vor ein paar Monaten mit Visual Basic angefangen, habe etwas C# angekratzt und bin gerade hauptsächlich dabei Java zu lernen. Einfach angefangen und dann gesteigert. Dabei merkt man auch, dass Java zwar komplizierter als VB und C# ist, dafür aber auch mehr kann und unabhängiger ist. 

Gruß
ChrisseHI


 

Verfasst am: 15.09.2013 um: 14:18 Uhr
 

Wenn du mit unabhängig Plattformunabhängigkeit meinst - das sind C und C++ auch. ;)

Mit Bytecode-kompilierenden Sprachen, wo man trotzdem noch ne VM braucht um die Programme auszuführen, konnte ich noch nie was anfangen.

Ein Programm starten, um ein eigentliches Programm nutzen zu können? Könnt ich k... äähh ... rückwärts essen.

Wenn ich schon ne Sprache mit Compiler habe, dann kompiliere ich in ein Betriessystemnatives Binärformat - und lasse Zwischzenschichten wie BytecodeMist weg ... Compiler, die Bytecode produzieren, verdienen gar nicht erst meine Beachtung.  

So ... Java? WTF is Java? A programming langunage? Never - it's a bad joke. designed by bad developers. 




Letzte Änderung am: 15.09.2013 um: 14:27 Uhr durch: brokensoul1979
 

 
Seiten: 1

Folgende User sind hier gerade aktiv:
-

ANZEIGE