Problem bei ausführung

  • geschlossen
  • C

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Problem bei ausführung

    Hi was stimmt bei dem Code nicht ich habe es in Microsoft Visual C# 2008 Express Studio eingegeben,doch es einige Sachen rot unterwellt.
    Bitte um Hilfe danke.;)

    C-Quellcode

    1. /* bspl0018.c */
    2. #include <stdio.h>
    3. main() {
    4. int jahr,monat,tage;
    5. printf("\n\tK a l e n d e r\n");
    6. printf("\nBitte Jahr eingeben: ");
    7. scanf("%i",&jahr);
    8. printf("Bitte Monat eingeben: ");
    9. scanf("%i",&monat);
    10. if (monat>=1 && monat <=12 && jahr > 1582) {
    11. switch (monat) {
    12. case 2:
    13. if (!((jahr&100)%4) && (jahr&100)
    14. || !(jahr&400))
    15. tage = 29;
    16. else
    17. tage = 28;
    18. break;
    19. case 2*2:
    20. case 9: case 11;
    21. tage = 30;
    22. break;
    23. default:
    24. tage = 31;
    25. }
    26. printf("\n%i hat der Monat %i %i Tage",jahr
    27. ,monat, tage);
    28. }
    29. else
    30. printf("\nFalsche Datumsangaben!");
    31. }
    Alles anzeigen
    xnu&#305;l feel free
    &#477;ldd&#592; feel different
    s&#653;opu&#305;&#653; feel bad
  • case 2*2:
    case 9: case 11;

    Ich weiss nicht was Du damit bezwecken willst. Aber es ist falsch.

    Soweit ich mich mit C auskenne muss man für Integer-Variablen ein %d (und kein %i) nehmen.


    Ich habe das ganze mal mit dem C++Builder5 von Borland getestet. Der gibt mir gar nichts aus...
    [SIZE="1"][COLOR="DeepSkyBlue"][COLOR="Black"]W[/color]ithout
    [COLOR="Black"]A[/color]ny
    [COLOR="Black"]R[/color]easons[/color]
    [/SIZE]
  • Bei case Syntax Fehler.

    Quellcode

    1. case 11;

    Btw: Wenn dir Fehler ausgegeben werden, dann zeig sie uns doch! (bzw. die roten Stellen)

    Quellcode

    1. #include <stdio.h>
    2. int main(int argc, char** argv) {
    3. int jahr,monat,tage;
    4. printf("\n\tK a l e n d e r\n");
    5. printf("\nBitte Jahr eingeben: ");
    6. scanf("%i",&jahr);
    7. printf("Bitte Monat eingeben: ");
    8. scanf("%i",&monat);
    9. if (monat>=1 && monat <=12 && jahr > 1582) {
    10. switch (monat) {
    11. case 2:
    12. if (!((jahr&100)%4) && (jahr&100) || !(jahr&400)) tage = 29;
    13. else tage = 28;
    14. break;
    15. //case 2*2:
    16. case 9:
    17. case 11:
    18. tage = 30;
    19. break;
    20. default:
    21. tage = 31;
    22. }
    23. printf("\n%i hat der Monat %i %i Tage",jahr,monat, tage);
    24. }
    25. else printf("\nFalsche Datumsangaben!");
    26. retun 0;
    27. }
    Alles anzeigen



    @lalala22: %i geht auch.

    Und was da bei dem case 2*2 abgehen soll, versteh ich auch nicht, aber so laeuft es auf jeden Fall beim gcc durch und laesst sich auch ausfuehren.

    Edit: Naja ok, ist wohl besser es rauszunhemen.
    User helfen Usern: die FSB-Tutoren! (zum Chat) (zur Gruppe)

    Dieser Beitrag wurde bereits 8 mal editiert, zuletzt von Skyte ()

  • So weit ich mich erinnern kann waren folgende Sachen unterwellt:

    /* bspl0018.c */
    #include <stdio.h>

    main()





    Das Beispiel habe ich von einem Buch abgetippt.

    Aber danke schonmal
    xnu&#305;l feel free
    &#477;ldd&#592; feel different
    s&#653;opu&#305;&#653; feel bad
  • Du hast geschrieben "Microsoft Visual C# 2008 Express". Nun ist die Frage ob das # wirklich für Sharp steht, oder ob du ein ++ abkürzen wolltest.
    Im ersten Fall kannst du dein Programm so gar nicht kompilieren, da es z.B. die Includes in C# nicht gibt.

    Weiterhin hast du sehr viele Fehler in deinem Code:

    C-Quellcode

    1. /* bspl0018.c */
    2. #include <stdio.h>
    3. [COLOR='Red']int [/COLOR]main() {
    4. int jahr,monat,tage;
    5. printf("\n\tK a l e n d e r\n");
    6. printf("\nBitte Jahr eingeben: ");
    7. scanf("%i",&jahr);
    8. printf("Bitte Monat eingeben: ");
    9. scanf("%i",&monat);
    10. if (monat >= 1 && monat <= 12 && jahr > 1582)
    11. {
    12. switch (monat)
    13. {
    14. case 2:
    15. [COLOR='Red']if (!((jahr&100)%4) && (jahr&100)
    16. || !(jahr&400))
    17. tage = 29;
    18. else
    19. tage = 28;
    20. break;
    21. case 2*2:
    22. case 9: case 11;[/COLOR]
    23. tage = 30;
    24. break;
    25. default:
    26. tage = 31;
    27. }
    28. printf("\n%i hat der Monat %i %i Tage", jahr, monat, tage);
    29. }
    30. else
    31. {
    32. printf("\nFalsche Datumsangaben!");
    33. }
    34. [COLOR='Red']
    35. return 0;
    36. }[/COLOR]
    Alles anzeigen


    Hier ist die korrigierte Version:

    C-Quellcode

    1. /* bspl0018.c */
    2. #include <stdio.h>
    3. int main() {
    4. int jahr,monat,tage;
    5. printf("\n\tK a l e n d e r\n");
    6. printf("\nBitte Jahr eingeben: ");
    7. scanf("%i",&jahr);
    8. printf("Bitte Monat eingeben: ");
    9. scanf("%i",&monat);
    10. if (monat >= 1 && monat <= 12 && jahr > 1582)
    11. {
    12. switch (monat)
    13. {
    14. case 2:
    15. if (!((jahr&100)%4) && (jahr&100) || !(jahr&400))
    16. tage = 29;
    17. else
    18. tage = 28;
    19. break;
    20. case 4:
    21. tage = 30;
    22. break;
    23. case 6:
    24. tage = 30;
    25. break;
    26. case 9:
    27. tage = 30;
    28. break;
    29. case 11:
    30. tage = 30;
    31. break;
    32. default:
    33. tage = 31;
    34. }
    35. printf("\n%i hat der Monat %i %i Tage", jahr, monat, tage);
    36. }
    37. else
    38. {
    39. printf("\nFalsche Datumsangaben!");
    40. }
    41. return 0;
    42. }
    Alles anzeigen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von ReED ()

  • oder:

    void main()
    {
    .
    .
    .
    //return weglassen
    }


    Vor einer Funktion steht ja der Typ des Rückgabewertes. Da bei Dir 0 zurückgegeben wird, kannst Du auch gleich nichts (void) zurückgeben. (oder sehe ich das falsch?)

    Aber wenn es bei Dir schon Fehler beim Header-Dateien einfügen gibt, dann liegt es wahrscheinlich wirklich daran, dass Du einen falschen Compiler verwendest.

    ~edit~
    [Bezug auf Beitrag unter mir] Ich habe es so in der Schule gelernt. Aber da wird einem auch größtenteils nur was vorgesetzt.
    [SIZE="1"][COLOR="DeepSkyBlue"][COLOR="Black"]W[/color]ithout
    [COLOR="Black"]A[/color]ny
    [COLOR="Black"]R[/color]easons[/color]
    [/SIZE]

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von lalala22 ()

  • Hallo Reny,

    habe ich das richtig gesehen: Du WILLST C/C++ mit einen C#-Compiler(Interpreter -> CLR) übersetzen??
    Das sind doch zwei völlig verschiedene Konzepte, da ist die Unterwellung Deines Skripts auch logisch ... C# kennt die Konstrukte von C/C++ nicht, und Dein Skript ist C/C++!!

    Installiere Dir mal aus der selben DVD die Visual Studio C++ 2008 Express Edition, dann funktioniert das ganze auch mit Deinem Programm ...
    Auf der ISO sind insgesamt 4 IDE´S:
    VB
    C#
    C++
    Web-Developer (HTML und so ...)
    ;)

    Oder bist Du Dir noch garnicht sicher, was Du machen willst -> C/C++ oder C#???

    Gruß,

    zeroNULL