3 Probleme
-
Hallo Leute, ich bin neu hier, hoffe dass ich nichts falsch mache.
Hier mein Problem
Ich werde euch senden was ich geschrieben hab und was der Fehler ist, aber ich weiß nicht warum der fehler ist und kann ihn nicht finden!
#include <stdio.h> int main() { int zahl; int zahl1; int zahl2; int zahl3; printf("Bitte Zahl1 eingeben: "); int zahl1 = 0; scanf("%d", &zahl1); printf("\nBitte Zahl2 eingeben: "); int zahl2 = 0; scanf("%d", &zahl2); zahl1 = zahl1 * zahl2; printf("\nBitte Zahl3 eingeben: "); scanf("%d", &zahl2); printf("\nDas Produkt lautet %d", zahl1 * zahl 2); return 0; }
1211222\1211222\12.c(12) : error C2143: Syntaxfehler: Es fehlt ';' vor 'Typ'
1211222\1211222\12.c(17) : error C2143: Syntaxfehler: Es fehlt ';' vor 'Typ'
\1211222\1211222\12.c(26) : error C2143: Syntaxfehler: Es fehlt ')' vor 'Konstante'
\1211222\1211222\12.c(26) : error C2059: Syntaxfehler: ')'#include <stdio.h> int main() { int tag; int tage; int monate; int jahre; printf("Bitte geben Sie die Anzahl der Tage ein: "); scanf("%d",&tag); jahre=tag/365; tage=tag%365; monate=tage/30; jahre=tage/365; tage=tag%365; printf("genauer : %d jahre, %d monate, %d tage",jahre,monate,tage); return 0; }
zeigt keinen Fehler an nur irgednwas ist falsch, so dass es z.B. bei 31 Tagen 1 monat und 31 tage ausgibt, ich soll tage eingeben müssen und es sollen genauer die tage ajhre und monate rauskommen
#include <stdio.h> int main() { int zahl; int zahl1; int zahl2; int zahl3; printf("Bitte Zahl1 eingeben: "); int zahl1 = 0; scanf("%d", &zahl1); printf("\nBitte Zahl2 eingeben: "); int zahl2 = 0; scanf("%d", &zahl2); zahl1 = zahl1 * zahl2; printf("\nBitte Zahl3 eingeben: "); scanf("%d", &zahl2); print("\nDas Produkt lautet %d", zahl1 * zahl 2); return 0; }
error C2143: Syntaxfehler: Es fehlt ';' vor 'Typ'
error C2143: Syntaxfehler: Es fehlt ';' vor 'Typ'
warning C4013: 'print' undefiniert; Annahme: extern mit Rückgabetyp int
error C2059: Syntaxfehler: ')'
error C2143: Syntaxfehler: Es fehlt ')' vor 'Konstante'Bitte helft mir, brauche das ganze bis morgen und es funktioniert nicht !!!!
Schreibe das ganze in C
Programm: Visual 2008 C++
-
Schreib mal vor den Code [c
pp] und danach [/c
pp].
-
mngbd schrieb:
Schreib mal vor den Code [c
pp] und danach [/c
pp].
Wie meinst du das, bei der Datei schreibe ich immer Name.c das es c is wenn ich schreibe c++ dann muss ich schreiben name.cpp oder was meinst du jz wo soll ich /cpp schreiben? ich will das ganze ja in c haben
-
Blurp_ schrieb:
was meinst du
Dann sieht der Code so aus, und ich bekomm keine Kopfschmerzen beim Lesen
-
mngbd schrieb:
Blurp_ schrieb:
was meinst du
Dann sieht der Code so aus, und ich bekomm keine Kopfschmerzen beim Lesen
Bitteschön
-
int zahl1; int zahl2; int zahl3; printf("Bitte Zahl1 eingeben: "); int zahl1 = 0;
Ist das beabsichtigt, dass du die Variable hier nochmals deklarierst? Oben steht doch schon eine Deklaration, das soll hier wahrscheinlich nur eine Zuweisung sein.
Der Compiler beschwert sich übrigens darüber, dass du Anweisungen und Deklarationen mischst. Wahrscheinlich hast du einen Compiler, der den aktuellen C-Standard von 1999 nicht umsetzt. In dem alten C-Standard von 1989 müssen Variablen zusammen am Blockanfang deklariert werden.
-
Bashar schrieb:
int zahl1; int zahl2; int zahl3; printf("Bitte Zahl1 eingeben: "); int zahl1 = 0;
Ist das beabsichtigt, dass du die Variable hier nochmals deklarierst? Oben steht doch schon eine Deklaration, das soll hier wahrscheinlich nur eine Zuweisung sein.
Der Compiler beschwert sich übrigens darüber, dass du Anweisungen und Deklarationen mischst. Wahrscheinlich hast du einen Compiler, der den aktuellen C-Standard von 1999 nicht umsetzt. In dem alten C-Standard von 1989 müssen Variablen zusammen am Blockanfang deklariert werden.
achja das hab ich vergessen, aber auch ohne dem wenn ich das lösche kommen trotzdem noch fehler....denk dir das bitte weg...
-
Es kommen noch Fehler, das ist aber schön. Und welche?
-
Bashar schrieb:
Es kommen noch Fehler, das ist aber schön. Und welche?
Wenn ich zahl1=0 zahl2=0 zahl3=0 lösche kommen diese fehler:
warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. Siehe Deklaration von 'scanf´ Siehe Deklaration von 'scanf´ Siehe Deklaration von 'scanf´ warning C4013: 'print' undefiniert; Annahme: extern mit Rückgabetyp int
Ich verstehs einfach nicht, und ich brauch das bis morgen x(
-
Bitte deine Hausaufgaben:
#include <stdio.h> int main() { int zahl1; int zahl2; int zahl3; printf("Bitte Zahl1 eingeben: "); zahl1 = 0; scanf("%d", &zahl1); printf("\nBitte Zahl2 eingeben: "); zahl2 = 0; scanf("%d", &zahl2); zahl3 = zahl1 * zahl2; printf("\nBitte Zahl3 eingeben: "); scanf("%d", &zahl2); printf("\nDas Produkt lautet %d\n", zahl3 * zahl2); return 0; }
Du hattest hier die Fehler:
1. die doppelten "int"
2. zahl und zahl3 waren unbenutzt
3. gravierend:print("\nDas Produkt lautet %d", zahl1 * zahl 2);
Schreibfehler, du hast ein Leerzeichen zwischen zahl und der 2 also "zahl 2" statt "zahl2" was den "Konstanten" Fehler verursacht hat...
Das zweite:
jahre=tag/365; tage=tag%365; monate=tage/30; jahre=tage/365; tage=tag%365;
Wo ist da der Sinn, dass du Jahre und tage zweimal setzt?
jahre=tag/365; tag = tag - (jahre * 365); monate=tag/30; tag = tag - (monate * 30);
So ist es schon mal besser, ob das der Fehler war, weiß ich nicht...
-
Man Danke, auf das hätt ich auch selber kommen können, DANKE !!!
Ein Beispiel brauch ich aber noch....
#include <stdio.h> int main() { int tag; int tage; int monate; int jahre; printf("Bitte geben Sie die Anzahl der Tage ein: "); scanf("%d",&tag); jahre=tag/365; tage=tag%365; monate=tage/30; jahre=tage/365; tage=tag%365; printf("genauer : %d jahre, %d monate, %d tage",jahre,monate,tage); return 0; }
Ich schaff es nicht dass es mir die Monate Tage und Jahre genau ausgibt, Fehler zeigt es keinen an...Hättest du da auch noch ne idee?
Ach und noch was:
Schreiben Sie ein Programm, bei dem drei Zahlen multipliziert werden, das aber nur zwei Variablen
benötigt. Lassen Sie das Ergebnis ausgeben. Entwerfen Sie das Programm so, dass nur das Produkt
noch weiter verwendet werden könnte.Das war die HÜ vom vorigen Beispiel wie schaffe ich es dass ich dann nur mit den Produkt weiterrechnen kann?
-
Zu 2.
jahre=tag/365; tage=tag%365; // 0- 364 monate=tage/30; jahre=tage/365; // Warum hier nochmal? Da kann nur 0 rauskommen tage=tag%365; // tage=tage%30
-
jahre=tag/365; tage=tag%365; // 0- 364 monate=tage/30; jahre=tage/365; // Warum hier nochmal? Da kann nur 0 rauskommen tage=tag%365; // tage=tage%30
das eine ist jahre=tag/365 das andere ist jahre=tage/365, das heißt eines gehört weg?
-
Siehe mein Edit in meinem Post....
Sonst eig:jahre=tag/365; tag = tag - (jahre * 365); monate=tag/30; tag = tag - (monate * 30);
tage kannste löschen und im printf durch tag ersetzten....Spart Variabeln...
-
Ich hab jz eingefügt was gekommen ist von euch, und beim ersten Post kommt wenn ich 31 Tage eingebe: 1 monat 31 Tage und beim 2. Post kommtn erorr den ich wiederholen ignoreiren oder abbrechen kann....
-
Du husst wie gesagt es etwas ändern:
#include <stdio.h> int main() { int tag; int monate; int jahre; printf("Bitte geben Sie die Anzahl der Tage ein: "); scanf("%d",&tag); jahre=tag/365; tag = tag - (jahre * 365); monate=tag/30; tag = tag - (monate * 30); printf("genauer : %d jahre, %d monate, %d tage",jahre,monate,tag); return 0; }
Wegen der Aufgabenstellung, so schwer ist das auch nicht:
#include <stdio.h> int main() { int zahl1; int zahl2; printf("Bitte Zahl1 eingeben: "); scanf("%d", &zahl1); printf("\nBitte Zahl2 eingeben: "); scanf("%d", &zahl2); zahl1 = zahl1 * zahl2; printf("\nBitte Zahl3 eingeben: "); scanf("%d", &zahl2); printf("\nDas Produkt lautet %d\n", zahl1 * zahl2); return 0; }
-
DirkB schrieb:
Zu 2.
jahre=tag/365; tage=tag%365; // 0- 364 monate=tage/30; jahre=tage/365; // Warum hier nochmal? Da kann nur 0 rauskommen tage=tag%365; // tage=tage%30
Wenn ich das hier durch das ersetze kommt bei 761 Tagen: 2 Jahre 1 monat 31 Tage wobei jedoch gehört: 2 jahre 1 monat 1 tag.
Das steht jz drinnen:
#include <stdio.h> int main() { int tag; int tage; int monate; int jahre; printf("Bitte geben Sie die Anzahl der Tage ein: "); scanf("%d",&tag); jahre=tag/365; tage=tag%365; // 0- 364 monate=tage/30; tage=tag%365; // tage=tage%30 printf("genauer : %d jahre, %d monate, %d tage",jahre,monate,tage); return 0; }
-
Du ermittelst die Jahre:
jahre=tag/365;Dann musst du nur noch die Tage in einem Jahr berücksichtigen:
tage=tag%365; // 0 <= tage <= 364Das gleich für monate:
monate=tage/30; // 0 <= monate <= 12 ( ab 360 Tage bist du im 12. Monat)Bis hierhin ok.
jahre=tage/365;
tage sind max 364. Dann kann da 364/365 stehen. Das sind 0,99726... was als int aber 0 ist. Bringt also nichtstage=tag%365;
tage sind max 364. Der Rest der Division mit 365. Da tag immer kleiner als 365 ist, steht da tage=tag. Bringt also nichtsDu suchst:
tage=tage%30; // Der Rest der Tage in einem Monat.
-
Wie gesagt, nimm mal den Code von meinem Post hiervor...
-
Ok Danke das mit Monate geht jz, danke
Aber das es dann nur mit Produkt aus Zahl 1 und Zahl 2 weiterrechnet das geht nicht, z.B. Zahl 1:3
Zahl2:3
Zahl3:5= 45 kommt raus normalerweise sollte ja 9 rauskommen...