c verstaändnis frage.
-
Hallo, Ich hab würde gerne etwas zu diesem Quelcode wissen. und zwar hab ich 2 fragen..
Frage nr.1Bei einen Array beginnt man soweit ich weiß bei null.
Ich hab das Versucht aber der fängt bei mir immer bei 1 an, warum!?Frage nr.2
Eine Forschleife hat ja eine Bedingung in der Klammern. Die geschweifte Klammer ist die Anweisung. Hier sind 2 for Schleifen die keine geschweifte Klammern sprich nur Bedingungen haben(hab ich unten als frage 2 kommentiert.) wie interprietiert der Compiler dies?#include <stdio.h> #include <stdlib.h>n main(int argc, char *argv[]) { // pflicht Schleife bzw. beginn Schleife. int i; double temperatur [31],gesamt =0,durchschnitt; printf("\t\n Tagestemperatur des Monat August!\n"); for(i=0;i<=30;i++) // FRAGE 2 printf("%i. Tag: ",i+1); scanf("%i",&temperatur[i]); printf("\n Alle Werte des August \n"); for(i=0; i<=30; i++) // FRAGE 2 printf("\n %i.Tag: %.2lf Grad",i+1,temperatur[i]); for(i=0; i<=30; i++) gesamt+= temperatur[i]; durchschnitt = gesamt/31; printf("\n\n Durchschnitt. Temperatur = %.2lf. Grad",durchschnitt); system("pause"); } // pflicht Schleife bzw. endschleifetausend dank schonmal!
lg hasso

-
hasso schrieb:
Hallo, Ich hab würde gerne etwas zu diesem Quelcode wissen. und zwar hab ich 2 fragen..
Frage nr.1Bei einen Array beginnt man soweit ich weiß bei null.
Ich hab das Versucht aber der fängt bei mir immer bei 1 an, warum!?Wegen dem hier?
printf("%i. Tag: ",i+1);Da addierst du ja auch eins drauf... Falls du das hier nicht meinst, schreib, was du ausprobiert hast. Das ist deiner Fragestellung nach nicht klar.
hasso schrieb:
Frage nr.2
Eine Forschleife hat ja eine Bedingung in der Klammern. Die geschweifte Klammer ist die Anweisung. Hier sind 2 for Schleifen die keine geschweifte Klammern sprich nur Bedingungen haben(hab ich unten als frage 2 kommentiert.) wie interprietiert der Compiler dies?Eine for-Schleife braucht keine geschweiften Klammern.
Hinter einer for-Schleife kommt ein Ausdruck, der ausgeführt wird. Dieser Ausdruck kann entweder ein einfacher Befehl sein (mit Semikolon abgeschlossen) oder ein Block (mehrere Befehle in geschweiften Klammern).
-
hasso schrieb:
Ich hab das Versucht aber der fängt bei mir immer bei 1 an, warum!?
hasso schrieb:
for(i=0;i<=30;i++) printf("%i. Tag: ",i+1); // hier gibst Du i _+1_ aus... scanf("%i",&temperatur[i]);...klar, dass dann "1. Tag" auf dem Bildschirm steht.
hasso schrieb:
Die geschweifte Klammer ist die Anweisung. Hier sind 2 for Schleifen die keine geschweifte Klammern sprich nur Bedingungen haben(hab ich unten als frage 2 kommentiert.)
Die
for-Schleife hat folgende Syntax:for ( expression[t]opt[/t]; expression[t]opt[/t]; expression[t]opt[/t]) statement
for ( declaration expression[t]opt[/t]; expression[t]opt[/t] ) statementWobei statement natürlich auch ein compound statement sein kann. Du willst wahrscheinlich:
for(i=0;i<=30;i++) { printf("%i. Tag: ",i+1); scanf("%i",&temperatur[i]); }BTW:
- Es gibt zwei für
maingültige Signaturen:int main( void )und . Keine von beiden hast du getroffen
- Geschweifte Klammern bedeten nicht automatisch "Schleife"! (Was Du als "pflicht Schleife bzw. beginn Schleife" verstehst ist der Funktionsrumpf von
main.) - Es ist üblich, Arrays über
anzzu deklarieren und Schleifenvariablen bis< anzlaufen zu lassen. (nicht<= anz) - Dein
durchschnittwird ungenau, da Du zu seiner Errechnung eine reine Integerdivision durchführst (Du willstgesamt / 31.0(Die reziproke 0 ist überflüssig, aber sonst übersiehst Du mir noch den Punkt
) - Für
system( PAUSE );gibt's schönere Alternativen.
greetz, Swordfish
// edit: Swordfish just changed his callsign. Swordfish may now be called 'SlowFox'

- Es gibt zwei für