Ich habe einen Algorithmus, der zeigen sollte, ob zwei Arrays ähnlich sind oder nicht. Es funktioniert, aber ich weiß nicht, was Größe des Arrays sein sollte.Größe des spezifischen Arrays
Zum Beispiel:
int a[10], i = 0, r = 0, n = 0;
printf("Enter the amount of numbers in arrays: ";
scanf("%d", &n);
printf("Enter the numbers of array: ";
for (i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
Wenn ich für Eingabe "n" Variable n = 11, stoppt Programm am Ende. Meine Frage ist: Welche Nummer soll ich auf das Array setzen a [THAT_PLACE] sicher sein, dass dieses Programm mit dem meisten Hardware kompatibel sein wird (ich hörte, dass dies auch aus dem Speicher ab.)
@ UPDATE1:
Ich wählte eine AlkLösung. Aber es funktioniert immer noch nicht. Hier ist mein Code:
int main()
{
int i = 0, temp_a = 0, switch_a = 0, temp_b = 0, switch_b = 0, n = 0;
printf("Enter the amount of numbers in arrays: ");
scanf("%d", &n);
{
int a[n], b[n];
printf("Enter elements of first array: ");
for (i = 0; i < n; ++i)
{
scanf("%d", &a[i]);
}
printf("Enter elements of second array: ");
for (i = 0; i < n; ++i)
{
scanf("%d", &b[i]);
}
do
{
switch_a = 0;
for (i = 0; i < n - 1; i++)
{
if (a[i] > a[i + 1])
{
switch_a = switch_a + 1;
temp_a = a[i];
a[i] = a[i + 1];
a[i + 1] = temp_a;
}
}
} while (switch_a != 0);
//bubble sort
do
{
switch_b = 0;
for (i = 0; i < n - 1; i++)
{
if (b[i] > b[i + 1])
{
switch_b = switch_b + 1;
temp_b = b[i];
b[i] = b[i + 1];
b[i + 1] = temp_b;
}
}
} while (switch_b != 0);
//Cheks, if an arrays are the same.
for (i = 0; i < n; i++)
{
if (a[i] != b[i])
{
printf("This two arrays don't have the same elements.\n\n\n");
return 0;
}
}
printf("This two arrays have the same elements.\n\n\n");
}
return 0;
}
Könnten Sie prüfen es für mich? Ich kann nicht finden, was falsch ist ...
Sie möchten eine Variable Längenfeld, das glücklicherweise ab C99 hat. Lesen Sie vor der Deklaration von 'int a [n]; –
" wie viele Elemente Sie mit der scanf Zeile benötigen "... dieses Programm ist mit den meisten Hardware kompatibel" - Sollte das Programm nicht so geschrieben sein, dass es für die ** Problem ** soll es lösen? – Olaf
Der aktualisierte Code scheint zu funktionieren, wenn Sie das '#include' hinzufügen. Was ist das Problem? Außerdem klingt das nach einer neuen Frage, die nichts mit der alten zu tun hat. Wenn Sie ein Problem feststellen können, können Sie vielleicht eine neue Frage stellen? –