Amarillo
14.04.2013, 08:55
Hallo §wink
Ich bräuchte mal (wieder) eure hilfe. Ich muss in meinem Programm 3 Funktionen haben und alle Variablen die an die Funktionen übergeben werden müssen Zeiger sein. Von Main aus werden die Funktionen aufgerufen und die Wiederholungsschleife laufen gelassen.
In monate werden die Monate eingegeben. In anzsonnenblumen das Arrays gefüllt und in ausgabe die Höchste Zahl im Array berechnet und der Monat in dem die Höchste zahl vorkommt ausgegeben.
Und da liegt das Problem, ich weiß nicht wie ich letzteres machen soll. Ich bekomme immer falsche Monate als Ergebnis. Es wäre toll wenn mir jemand helfen könnte diese MAX ausgabe richtig zu machen.
Das Programm setzte ich mal in Spoiler
Main
# include <iostream.h>
# include <conio.h>
# include <math.h>
void monate (int *monatezeiger);
void anzsonnenblumen (int *monatezeiger,int *sonnenzeiger);
void ausgabe (int *sonnenzeiger, int *monatezeiger);
int main()
{
int *monatezeiger,*sonnenzeiger,max,anzahlmonate, sonnenblumensamen[10];
char auswahl;
sonnenzeiger = &sonnenblumensamen[0];
monatezeiger = &anzahlmonate;
do
{
monate (monatezeiger);
anzsonnenblumen (monatezeiger, sonnenzeiger);
ausgabe (sonnenzeiger, monatezeiger);
cout << "Wenn Sie das Programm nochmals ausfuehren moechten druecken Sie W" << endl;
cin >> auswahl;
}
while ((auswahl == 'w')||(auswahl == 'W'));
getch();
return 0;
}
Monate
void monate (int *monatezeiger)
{
do
{
cout << "Geben Sie die anzahl der Monate ein (min. 1 - max. 10 Monate):" << endl;
cin >> *monatezeiger;
}
while ((*monatezeiger < 1)||(*monatezeiger > 10));
}
anzsonnenblumen
void anzsonnenblumen (int *monatezeiger,int *sonnenzeiger)
{
int i;
i=0;
for (i; i < *monatezeiger;i++)
{
do
{
cout << "Geben Sie die Gesamtproduktion von Sonnenblumensamen im " << (i+1) << " Monat ein:" << endl;
cin >> *sonnenzeiger;
}
while (*sonnenzeiger < 1);
*sonnenzeiger++;
}
}
ausgabe
void ausgabe (int *monatezeiger, int *sonnenzeiger)
{
int i,max,maxausgabe;
i=0;
max = *sonnenzeiger;
for (i; i < *monatezeiger; i++)
{
if ( max <= *sonnenzeiger)
{
maxausgabe = i;
max = *sonnenzeiger;
}
sonnenzeiger++;
}
cout << "Im " << maxausgabe << " Monat haben Sie die meisten Sonnenblumensamen produziert" << endl;
}
Das gesamte Programm
# include <iostream.h>
# include <conio.h>
# include <math.h>
void monate (int *monatezeiger);
void anzsonnenblumen (int *monatezeiger,int *sonnenzeiger);
void ausgabe (int *sonnenzeiger, int *monatezeiger);
int main()
{
int *monatezeiger,*sonnenzeiger,max,anzahlmonate, sonnenblumensamen[10];
char auswahl;
sonnenzeiger = &sonnenblumensamen[0];
monatezeiger = &anzahlmonate;
do
{
monate (monatezeiger);
anzsonnenblumen (monatezeiger, sonnenzeiger);
ausgabe (sonnenzeiger, monatezeiger);
cout << "Wenn Sie das Programm nochmals ausfuehren moechten druecken Sie W" << endl;
cin >> auswahl;
}
while ((auswahl == 'w')||(auswahl == 'W'));
getch();
return 0;
}
void monate (int *monatezeiger)
{
do
{
cout << "Geben Sie die anzahl der Monate ein (min. 1 - max. 10 Monate):" << endl;
cin >> *monatezeiger;
}
while ((*monatezeiger < 1)||(*monatezeiger > 10));
}
void anzsonnenblumen (int *monatezeiger,int *sonnenzeiger)
{
int i;
i=0;
for (i; i < *monatezeiger;i++)
{
do
{
cout << "Geben Sie die Gesamtproduktion von Sonnenblumensamen im " << (i+1) << " Monat ein:" << endl;
cin >> *sonnenzeiger;
}
while (*sonnenzeiger < 1);
*sonnenzeiger++;
}
}
void ausgabe (int *monatezeiger, int *sonnenzeiger)
{
int i,max,maxausgabe;
i=0;
max = *sonnenzeiger;
for (i; i < *monatezeiger; i++)
{
if ( max <= *sonnenzeiger)
{
maxausgabe = i;
max = *sonnenzeiger;
}
sonnenzeiger++;
}
cout << "Im " << maxausgabe << " Monat haben Sie die meisten Sonnenblumensamen produziert" << endl;
}
Danke schon mal! :gratz
Ich bräuchte mal (wieder) eure hilfe. Ich muss in meinem Programm 3 Funktionen haben und alle Variablen die an die Funktionen übergeben werden müssen Zeiger sein. Von Main aus werden die Funktionen aufgerufen und die Wiederholungsschleife laufen gelassen.
In monate werden die Monate eingegeben. In anzsonnenblumen das Arrays gefüllt und in ausgabe die Höchste Zahl im Array berechnet und der Monat in dem die Höchste zahl vorkommt ausgegeben.
Und da liegt das Problem, ich weiß nicht wie ich letzteres machen soll. Ich bekomme immer falsche Monate als Ergebnis. Es wäre toll wenn mir jemand helfen könnte diese MAX ausgabe richtig zu machen.
Das Programm setzte ich mal in Spoiler
Main
# include <iostream.h>
# include <conio.h>
# include <math.h>
void monate (int *monatezeiger);
void anzsonnenblumen (int *monatezeiger,int *sonnenzeiger);
void ausgabe (int *sonnenzeiger, int *monatezeiger);
int main()
{
int *monatezeiger,*sonnenzeiger,max,anzahlmonate, sonnenblumensamen[10];
char auswahl;
sonnenzeiger = &sonnenblumensamen[0];
monatezeiger = &anzahlmonate;
do
{
monate (monatezeiger);
anzsonnenblumen (monatezeiger, sonnenzeiger);
ausgabe (sonnenzeiger, monatezeiger);
cout << "Wenn Sie das Programm nochmals ausfuehren moechten druecken Sie W" << endl;
cin >> auswahl;
}
while ((auswahl == 'w')||(auswahl == 'W'));
getch();
return 0;
}
Monate
void monate (int *monatezeiger)
{
do
{
cout << "Geben Sie die anzahl der Monate ein (min. 1 - max. 10 Monate):" << endl;
cin >> *monatezeiger;
}
while ((*monatezeiger < 1)||(*monatezeiger > 10));
}
anzsonnenblumen
void anzsonnenblumen (int *monatezeiger,int *sonnenzeiger)
{
int i;
i=0;
for (i; i < *monatezeiger;i++)
{
do
{
cout << "Geben Sie die Gesamtproduktion von Sonnenblumensamen im " << (i+1) << " Monat ein:" << endl;
cin >> *sonnenzeiger;
}
while (*sonnenzeiger < 1);
*sonnenzeiger++;
}
}
ausgabe
void ausgabe (int *monatezeiger, int *sonnenzeiger)
{
int i,max,maxausgabe;
i=0;
max = *sonnenzeiger;
for (i; i < *monatezeiger; i++)
{
if ( max <= *sonnenzeiger)
{
maxausgabe = i;
max = *sonnenzeiger;
}
sonnenzeiger++;
}
cout << "Im " << maxausgabe << " Monat haben Sie die meisten Sonnenblumensamen produziert" << endl;
}
Das gesamte Programm
# include <iostream.h>
# include <conio.h>
# include <math.h>
void monate (int *monatezeiger);
void anzsonnenblumen (int *monatezeiger,int *sonnenzeiger);
void ausgabe (int *sonnenzeiger, int *monatezeiger);
int main()
{
int *monatezeiger,*sonnenzeiger,max,anzahlmonate, sonnenblumensamen[10];
char auswahl;
sonnenzeiger = &sonnenblumensamen[0];
monatezeiger = &anzahlmonate;
do
{
monate (monatezeiger);
anzsonnenblumen (monatezeiger, sonnenzeiger);
ausgabe (sonnenzeiger, monatezeiger);
cout << "Wenn Sie das Programm nochmals ausfuehren moechten druecken Sie W" << endl;
cin >> auswahl;
}
while ((auswahl == 'w')||(auswahl == 'W'));
getch();
return 0;
}
void monate (int *monatezeiger)
{
do
{
cout << "Geben Sie die anzahl der Monate ein (min. 1 - max. 10 Monate):" << endl;
cin >> *monatezeiger;
}
while ((*monatezeiger < 1)||(*monatezeiger > 10));
}
void anzsonnenblumen (int *monatezeiger,int *sonnenzeiger)
{
int i;
i=0;
for (i; i < *monatezeiger;i++)
{
do
{
cout << "Geben Sie die Gesamtproduktion von Sonnenblumensamen im " << (i+1) << " Monat ein:" << endl;
cin >> *sonnenzeiger;
}
while (*sonnenzeiger < 1);
*sonnenzeiger++;
}
}
void ausgabe (int *monatezeiger, int *sonnenzeiger)
{
int i,max,maxausgabe;
i=0;
max = *sonnenzeiger;
for (i; i < *monatezeiger; i++)
{
if ( max <= *sonnenzeiger)
{
maxausgabe = i;
max = *sonnenzeiger;
}
sonnenzeiger++;
}
cout << "Im " << maxausgabe << " Monat haben Sie die meisten Sonnenblumensamen produziert" << endl;
}
Danke schon mal! :gratz