wie verwende ich ByReference

H

Hamzter

Hallo erstmal,
Ich habe in Informatik ne HÜ bekommen die ziemlich knifflig is (für mich :))
Folgende Aufgabenstellung:
Programmieren von Funktionen mit Feldern

Einlesen von maximal 10 float Zahlen, mindestens 3 Zahlen (J/N Abfrage, ob man noch weitere Zahlen eingeben will!)
Erstellen einer Funktion1: Mittelwert aller eingegebenen Zahlen
Erstellen einer Funktion2: Maximalwert aller eingegebenen Zahlen
Beide Funktionen sollen im Hauptprogramm aufgerufen werden. Die Ausgabe der Resultate soll im Hauptprogramm und nicht in der Funktion erfolgen!

Anmerkung:
Die Felder sind in diesem Fall reine Inputs an die Funktion. Da nur es nur eine Zahl als Resultat gibt, soll diese als Rückgabewert verwendet werden.
Felder werden nicht ByValue sondern ByReference an Funktionen übergeben!
Gehe folgendermaßen vor:

Programmiere den Programmrumpf mit dem Hauptprogramm

Stelle die nötigen Überlegungen (Funktionsname, Inputs, Output) an, die als Resultat den Funktionskopf liefern.
Programmiere die Funktionsdefinition (Position nach dem Hauptprogramm)
Erstelle den Funktionsprototypen (Position vor dem Hauptprogramm)
Schreibe den Inhalt des Hauptprogrammes mit den Funktionsaufrufen

Ich hab mir halt überlegt wie ich des lösen kann und hab folgendes Programm geschrieben:

Code:
 #include <stdio.h>


float fMittelwert(float faFeld[]);
float fMaximalwert(float faFeld[]);
int icount=3;
void main(void)
{
	int i, iMitW,iMaxW;
	char cAbfrage;
	float faFeld[10];
	for(i=0; i<10; i++)
	{
		if(i<3);
		else if(i>3);
		{
			printf("Wollen sie eine zusätzliche Variable(J/N): ");
			scanf("%c", &cAbfrage);
			fflush(stdin);
			if(cAbfrage=='J')
			{
				icount=icount+1;
			}
			else(cAbfrage=='N');
			{
				i=10;
			}
		}
	}
	iMitW=fMittelwert(faFeld);
	printf("Mittelwert = ", iMitW);
	iMaxW=fMittelwert(faFeld);
	printf("Mittelwert = ", iMaxW);
	getchar();

}
float fMittelwert(float faFeld[])
{
	int iMittelwert, i;
	for(i=1; i<icount; i++)
	{
		iMittelwert=iMittelwert+faFeld[i];
	}
	
	iMittelwert=iMittelwert/icount;
}

float fMaximalwert(float faFeld[])
{
	int i, iMaxW;
	for(i=0; i<10; i++)
	{
		if(i<faFeld[i])
		{
			i=faFeld[i];
		}
		return iMaxW;
}
Nur eins weis ich jetzt nich, und zwar wie ich ByReferenze da einbauen soll:confused:
Bitte helft mir ich bin am Verzweifeln
Ach übrigens ich verwende Microsoft Visual Studio 2005 mit C++
 
Zuletzt bearbeitet von einem Moderator:
Zurück