Wie return ich ein arry?

BigDundee

Mitglied
Hallo...

ich verzeifel am Verusch ein Array zu returnen.
Mein Code soweit:

Code:
#include "stdafx.h"
float FRadiusEingeben();
float FKoordinatenEingeben();

void main()
{
                FKoordinatenEingeben();
	printf (" Der eingegebene Radius war: %5.2f", FRadiusEingeben());
}

float FRadiusEingeben()
{
	float fRadius;
	printf (" Bitte geben Sie den Radius des Kreises ein: ");
	scanf  (" %f", &fRadius);
	return (fRadius);
}

float FKoordinatenEingeben()
{
	float fXWerte[5];
	float fYWerte[5];
	int i, j;

	for (i=0; i<5; i++)
	{
		j = i + 1;
		printf ("\n\nGeben Sie bitte den %1d. X-Wert ein:\n", j);
		scanf  ("%f", &fXWerte[i]);
		
		printf ("\nGeben Sie bitte den %1d. Y-Wert ein:\n", j);
		scanf  ("%f", &fYWerte[i]);		
	}
	return (fYWerte[5]);
}

Am untersten return scheitere ich. Wie übergebe ich die beiden Arrays float fXWerte[5];
und float fYWerte[5];

mfG
[BD]
 
Du rufst deine Funktipn via call by refernce auf.
Das heißt das du innerhalb der Funktion mit einer Referenz auf das Original Objekt mit dem
du die Funktion aufgerufen hast arbeitest und somit der return Wert entfällt.
Ungefähr so:
Code:
void FKoordinatenEingeben(float* fXWerte, float* fYWerte)
{
	int i, j;

	for (i=0; i<5; i++)
	{
		j = i + 1;
		printf ("\n\nGeben Sie bitte den %1d. X-Wert ein:\n", j);
		scanf  ("%f", &fXWerte[i]);
		
		printf ("\nGeben Sie bitte den %1d. Y-Wert ein:\n", j);
		scanf  ("%f", &fYWerte[i]);		
	}
}

Aufruf der Funktion:
Code:
float feldX[5];
float feldY[5];
FKoordinatenEingeben(feldX, feldY);

Danach stehen die Koordinaten in den beiden Feldern feldX und feldY...
Gruß

RedWing
 
Hi, @BigDundee

Nochn Tip:

Du versuchst hier den 6.wert des Arrays zurück zu geben.

Code:
float FKoordinatenEingeben()
{
	float fXWerte[5];
	float fYWerte[5];
	int i, j;

	for (i=0; i<5; i++)
	{
		j = i + 1;
		printf ("\n\nGeben Sie bitte den %1d. X-Wert ein:\n", j);
		scanf  ("%f", &fXWerte[i]);
		
		printf ("\nGeben Sie bitte den %1d. Y-Wert ein:\n", j);
		scanf  ("%f", &fYWerte[i]);		
	}
	return (fYWerte[5]);
}
Du hast Arrays mit 5 float-Werten definiert! Ein Array fängt aber mit der Position 0 an.
Dh.: 0-4
Also fYWerte[0] bis fYWerte[4] funktioniert, aber bei fYWerte[5] dürfte es Knallen oder nur Müll rauskommen.
An sonsten, weiter so.

Mfg Col.Blake
 
Zurück