Schreiben sie ein Programm, welches vom Benutzer zwei 10-er Arrays verlangt. Testen Sie dann die beiden Arrays auf Gleichheit und geben Sie das Ergebnis (gleich/ungleich) fĂŒr jedes Arrayelement mit gleichem Inde (zahl[x]) aus.
Wenn Sie diesen Teilschritt auf richtige Funktionsweise geprĂŒft haben, schreiben Sie eine Funktion array_gleich(), die als Eingabeparameter zwei Arrays erhĂ€lt und einen bool-Wert als RĂŒckgabe liefert. (true = Arrays sind gleich), wenn alle Elemente mit gleichem Index in beiden Arrays gleich sind.
Ein Problem haben Sie noch: woher weiss die Funktion, wie viele Elemente die Arrays haben? Dies kann durch die Funktion nicht festgestellt werden. Sie mĂŒssen daher als weitere Parameter die LĂ€ngen der beiden Arrays zusĂ€tzlich ĂŒbergeben.
Vielleicht haben Sie ja auch vorgearbeitet?! Dann könnten Sie ja die Funktion ĂŒber Zeigervariable auf die Array-Elemente zugreifen lassen. Das ist nur so ein Hinweis fĂŒr eine "schönere" Lösung.
---
Das wĂ€rs also.. s Urschprungsprogramm gilt als Basis fĂŒr ebe das neue, und das hani scho!
Jo, bin tatsÀchlich e Frau.. :-) und i han extra bim tschuder ganwortet wiler gseit het er hilft..
dat stimmt nid ganz:
du hast dich da etwas mit den trues und falses verheddert.
ich wĂŒrde die funktion so schreiben:
bool array_gleich ( int * array1, int * array2, int lenght )
{
for (int i = 0; i < length, i++ ) // schlaufe ueber alle eintraege
{
if (array1[ i ] != array2[ i ]) return false; // gleiche werte
}
return true;
}
TatsÀchlich.
Hm, da sind so di immerglichÀ dÀmlichÀ fÀhler. So wiÀ diÀ mit Àm Index wo eis dÀnÀbÀt lit.
WĂŒr mĂ€ allerdings schnell findĂ€ wenn mĂ€s kompiliert
kommentar zur aufgabenstellung: am schluss steht, man könne die funktionen ĂŒber pointer auf die elemente zugreifen lassen.
ich verstehe das so, dass man statt mit array-indices mit pointern arbeiten solle. das ist aber keinesfalls eleganter, da es in diesem fall die sache erstens wesentlich umstÀndlicher und unleserlicher macht, und gute compiler optimieren solche sachen schon selber.
#include <iostream>
using namespace std;
void einlesen(int *serscht, int *szweit)
{
cout << "Bitte geben sie die ersten zehn zahlen ein:";
for (int i = 0; i < 10; i++)
{
cin >> serscht[i];
}
cout << "Bitte geben sie die nÀchsten zehn zahlen ein:";
for (int i = 0; i < 10; i++)
{
cin >> szweit[i];
}
}
void vergleichen(int *serscht, int *szweit)
{
for (int i = 0; i < 10; i++ ) // schlaufe ueber alle eintraege
{
cout << i << ": ";
if (serscht[ i ] != szweit[ i ]) cout << "ungleich" << endl;
else cout << "gleich" << endl;
}
}
bool array_gleich ( int * array1, int * array2, int length )
{
for (int i = 0; i < length; i++ ) // schlaufe ueber alle eintraege
{
if (array1[ i ] != array2[ i ]) return false; // gleiche werte
}
return true;
}
int main(void)
{
int serscht[10];
int szweit[10];
einlesen (serscht, szweit);
vergleichen(serscht, szweit);
if (array_gleich(serscht, szweit, 10)) cout << "hey die sind jo glich!" << endl;
else cout << "mann, die sind voll nöd glich!" << endl;
}
so, das erfĂŒllt jetzt glaub alle anforderungen. und es kompiliert sogar. krass, nöd?
Ich mach das sicher ned stÀndig mit wenn irgendwelchen Firmen mal wieder andere dÀmliche Standards erfinden man allgemein bekannte Zeichen auszusprechen hat.