[Newbaufgaben]C++ Ausgabe von ungeraden Zahlen;Buchstaben Großmachen


  • Mod

    Kaelron schrieb:

    30 Elemente Array hört sich gut an, wie mache ich das ^^

    Jedenfalls nicht durch Raten, sondern indem du deine Lehrmaterialien durchliest und verstehst.

    Wie du wahrscheinlich selbst gemerkt haben dürftest, kann man dein Programm zwar compilieren, aber es macht nicht das richtige.



  • Naja soviele Scripts haben wir bis jetzt auch nicht,
    wir haben halt nur das Aufgabenscript, habe mir auch schon
    so ein Buch gekauft, aber der Prof springt wohl etwas mit den
    Themen, als die, dies es im Buch machen..
    Bis jetzt habe ich eigl immer den code durch überlegen herausgefunden
    oder mir halt auch mal sagen lassen, um es daran zu verstehen.
    Deswegen frage ich ja hier nach Hilfe..
    Wenns nur so wenige Zeilen sind, kannst du sie mir ja mal aufzeigen,
    dann kann ich es besser verstehen und muss mich nicht
    den halben Nachmittag mit den Paar Zeilen rumschlagen.


  • Mod

    int a[30];
    

    Richtig, dies definiert ein Array von 30 int-Elementen.

    for ( i=0; i<4; i++ ) printf("%d ", a[30]);
    

    Nachdem das Array erstmal definiert wurde, greift man mit dem []-Operator auf die einzelnen Elemente zu. Und zwar auf das Element mit der Nummer die in den eckigen Klammern steht. Hier gibst du also jedes Mal das Element mit der Nummer 30 aus.

    Wie man das richtig macht, sollte klar sein.

    Im übrigen sei noch erwähnt, dass ein Array mit 30 Elementen kein Element mit der Nummer 30 besitzt, sondern nur die Nummern 0 bis 29. Zugriffe auf Elemente außerhalb von 0-29 sind zwar prinzipiell nicht verboten, aber es ist nicht definiert was dann passiert und es ist daher eigentlich immer ein Fehler wenn man das macht.



  • ahh danke 😉
    ich vestehe nur das nicht ganz

    for ( i=0; i<4; i++ ) printf("%d ", a[30]);
    

    ich schreib dir mal in worten auf was ich verstehe:
    i gleich 0
    wenn i kleiner 4 dann erhöhe i um eins (solange bis 4 )??!

    Schreibe %d, wobei %d a[30] ist..



  • SeppJ hat da etwas unüberlegt geschrieben. Es sollte heißen:
    for ( i=0; i<30; ++i ) printf("%d ", a[i]);

    Sprich: Solange i kleiner als 30 ist, gebe den i-ten Index des Arrays aus.



  • habe mir auch schon
    so ein Buch gekauft, aber der Prof sprinkt wohl etwas mit den
    Themen, als die, dies es im Buch machen..

    Erstmal: sprinkt 😮

    Des Weiteren würde ich dir empfehlen, trotzdem das Buch konsequent durchzuarbeiten. Das sind alles Grundlagen, die du früher oder später (spätestens bei der Klausur) brauchen wirst. Wenn dein Prof nicht in der Lage ist die Vorlesung didaktisch gut aufzubauen, vertraue lieber auf dein Buch, das sich wahrscheinlich schon tausendfach bewährt hat.


  • Mod

    Bruder Lustig schrieb:

    SeppJ hat da etwas unüberlegt geschrieben. Es sollte heißen:
    for ( i=0; i<30; ++i ) printf("%d ", a[i]);

    Sprich: Solange i kleiner als 30 ist, gebe den i-ten Index des Arrays aus.

    Eigentlich habe ich das ganz bewusst geschrieben, denn ich wollte dem Fragesteller seinen Fehler erklären...

    Da der Threadersteller es aber anscheinend noch nicht verstanden hat:

    int a[30];
    

    Das gibt dir ein Array mit 30 Elementen. Dieses Array heißt a und nirgendwie sonst. Nicht a[] und auch nicht a[30] sondern einfach nur a . Die Elemente von a heißen a[0] bis a[29] . Und jetzt denk nochmal darüber nach, was

    for ( i=0; i<4; i++ ) printf("%d ", a[30]);
    

    macht und wie man es richtig machen kann.



  • Achso, sorry.
    Habe nicht den ganzen Thread mitverfolgt und bin, wie der Fragesteller, davon ausgegangen, dass das die Lösung sei.
    Nichts für ungut. 😉



  • Bruder Lustig schrieb:

    habe mir auch schon
    so ein Buch gekauft, aber der Prof sprinkt wohl etwas mit den
    Themen, als die, dies es im Buch machen..

    Erstmal: sprinkt 😮

    Des Weiteren würde ich dir empfehlen, trotzdem das Buch konsequent durchzuarbeiten. Das sind alles Grundlagen, die du früher oder später (spätestens bei der Klausur) brauchen wirst. Wenn dein Prof nicht in der Lage ist die Vorlesung didaktisch gut aufzubauen, vertraue lieber auf dein Buch, das sich wahrscheinlich schon tausendfach bewährt hat.

    Erstmal: wtf.. bin aber schon den ganzen Tag in der Bib, da kann sowas mal vorkommen 😉

    2. Ja werd ich auch machen, nur das Buch z.b. behandelt erstmal die Schleifen und sehr sehr spät erst pointer+arrays..
    Aber seine Übungsaufgaben thematisieren das eben jetzt schon 😉



  • #include "stdafx.h"
     #include <stdio.h>
    
     void main()
     {
    	int aiARRAY[30] = { 0 };
    
    	printf("Ausgabe des aiARRAY[30]\n");
    	for(int i = 1;i<31;i++)
    	{
     printf("aiARRAY[%i]: %i\n",i,aiARRAY[i]);
    	}
     }
    

    So hier mal verändert,
    habe ich damit die Aufgabe erfüllt..es ist doch ein beliebiges interger array ?!



  • SeppJ schrieb:

    Im übrigen sei noch erwähnt, dass ein Array mit 30 Elementen kein Element mit der Nummer 30 besitzt, sondern nur die Nummern 0 bis 29. Zugriffe auf Elemente außerhalb von 0-29 sind zwar prinzipiell nicht verboten, aber es ist nicht definiert was dann passiert und es ist daher eigentlich immer ein Fehler wenn man das macht.

    Angenommen du hast ein Array der größte N, dann ist der kleinste Index 0 und der größte Index N-1. D.h. aiARRAY[30] ist undefiniert, da es außerhalb der Arraygrenzen liegt.

    habe ich damit die Aufgabe erfüllt..es ist doch ein beliebiges interger array ?!

    Naja, momentan ist es ein Array der Größe 30, bei dem der erste Eintrag 0 ist. So beliebig ist es nicht. 😉
    Vielleicht sollst du eine Funktion schreiben, der man einen Zeiger auf ein Array der Größe 30 übergibt? D.h. so etwas wie: void printArray(const int*)


Anmelden zum Antworten