Hallo en welkom terug.
Ik wil je graag een andere geven uitdaging, een andere opdracht.
Deze opdracht gaat dealen met multidimensionale arrays, raak een beetje
meer vertrouwd met dat, voornamelijk een 2D-array, omdat het iets is dat
u zou moeten begrijpen.
Dus in deze uitdaging ben jij een
c-programma gaan maken dat een tweedimensionale array en een weerprogramma.
Dit programma vindt het totaal neerslag voor elk jaar, de gemiddelde
jaarlijkse neerslag en de gemiddelde neerslag per maand.
Dus die 3 dingen zijn output gaat worden.
De invoer wordt een tweedimensionale array
met hardgecodeerde waarden voor regenval bedragen van de afgelopen 5 jaar.
Dus wat dit betekent ben jij moet een 2D-array maken
met 5 rijen en 12 kolommen.
De rijen gaan de . vertegenwoordigen afgelopen 5 jaar en dan gaan de
kolommen de maanden vertegenwoordigen.
Dus hoeveel regen heb je in januari? februari maart april voor elk jaar.
En de hoeveelheid regen zou moeten drijvende-kommagetallen zijn.
Omdat je je vaak laat kennen 7. 8 inches voor regen voor een maand, het moeten
drijvende punten zijn.
Wanneer je deze tweedimensionale maakt array, zorg ervoor dat het een float is.
De uitvoer voor het programma is: gaat er ongeveer zo uitzien.
Hier heb ik het net geformatteerd als een op een bepaalde manier, maar
wat u eerst als uitvoer moet weergeven, is: alles wat zich in de 2D-array bevindt.
Dus je zou gewoon een simpele lus die door de 2D-array gaat, geeft het jaar weer voor de
array en het jaar is of het nu de eerste rij is, de tweede
rij, de derde rij, je kunt gewoon een
geheel getal maken.
En verhoog het en dan de regenval zal alle regenval
voor alle maanden zijn.
Je moet ze dus gaandeweg toevoegen.
Dus wat je eerst moet doen, ben jij zou eigenlijk een for-lus en een binnenste
for-lus moeten hebben en er doorheen gaan om bereken de totale regen voor elk jaar en zorg dan voor een
lus om het af te drukken.
En ook, in die eerste
lus of eigenlijk wil je waarschijnlijk een tweede
lus maken met een innerlijke lus die alle maanden van elk jaar doorloopt en berekent de maandgemiddelden.
Dus nogmaals, zoals ik me voorstel het ontwerp voor
dit programma is 2D array floating point getallen, je zult
het moeten initialiseren met alle hardgecodeerde gegevens.
Je krijgt een eerste lus die gaat door, en het gaat berekenen
de totalen voor het hele jaar.
En dan is het gemakkelijk om de jaargemiddelde omdat je
gewoon de totalen neemt en deelt door het aantal jaren dat 5 is.
Dus het jaargemiddelde, dat doe je niet in een lus moeten rekenen.
Maar je moet berekenen de totale regenval voor elk jaar in
de lus.
En zo zou ik een lus hebben.
Je zult een moeten hebben binnenste lus omdat je voor
elke dimensionale array een binnenste lus moet hebben, twee dimensies hebben één binnenlus.
Dus een buitenste lus en een binnenste lus, een geneste lus, zou ik zeggen.
En je gaat door je eerste array.
Je begint bij het jaar en dus let ik ga door mijn tips eigenlijk denk ik dat
ik dit in de tips heb gezet.
Maar dit is de output, jij kan het op elke gewenste manier formatteren.
Maar wat ik hier weer zie is jaarlijkse neerslag, jaargemiddelde en
vervolgens maandgemiddelden.
Dus je wilt eerst je wilt om uw 2D-array
te initialiseren met hardgecodeerde regenmaanden.
We weten hoe we een array moeten initialiseren.
Voor een 2D-array heb je: kan rijen initialiseren.
Dus je kunt haakjes binnen hebben van de haakjes om elke rij weer
te geven en elke rij heeft 12 kolommen, zodat u
12 waarden, 12 drijvende-kommawaarden zou hebben.
En dan scheid je elkaar rij door komma's en je maakt gewoon nieuwe
haakjes, we zou moeten weten hoe dat moet.
En dan nog maar een herinnering om itereren door een tweedimensionale
array, je zult een . moeten hebben geneste lus, in feite één binnenlus.
Als het een 3D-array was, zou je moeten 2 binnenlussen hebben.
De sleutel tot deze oplossing is: zijn om een 2D-array
te visualiseren en te begrijpen hoe te herhalen via een via geneste lus.
Als je weet hoe je moet herhalen via een geneste array of een 2D-array
komt het wel goed.
Terwijl je itereert, kun je blijven een lopend totaal dat onze eerste reeks lussen is, een
buitenste lus zal herhaal met het jaar in de binnenste lus of herhaal met
de maand en u kunt een lopend totaal bijhouden om de totale regenval
voor alle jaren te krijgen.
Dus je eerste doel moet zodat je
gewoon die totale regenval voor alle jaren krijgt.
En aangezien je het totaal krijgt regenval, kunt u
ook gewoon het jaartotaal uitprinten.
Dan nadat je uit die lus bent, je kan het jaargemiddelde uitprinten.
Dan heb je er nog een nodig lus om het maandgemiddelde weer te geven.
En om het maandgemiddelde weer te geven heeft een buitenste lus voor elke maand en de binnenste lip gaat elk
jaar door.
Ik denk dat dit zal geven u een maandelijks gemiddelde.
Dus de jaarlijkse kunnen zijn in die eerste lus en de maandelijkse zal
in de tweede zijn.
Dus dat zou moeten zeggen om ze zover te krijgen krijg de maandelijkse gemiddelde regenval.
Dus je gaat alles leren over het
initialiseren van arrays, zul je begrijpen hoe je moet itereren door een tweedimensionale
array, veel belangrijke concepten hier.
Veel succes, en ik zal zorgen voor een oplossing in de volgende les. Dank u.