zu entfernen Ich bin neu in C und ich versuche, durch eine Funktion innerhalb eines Programms zu arbeiten, die die ganze Zahl 5 aus einem Array unterschiedlicher Länge entfernen würde, auch die Array danach zu unterbringen. a[0]
ist das Element im Array, das die Länge dieses Arrays bestimmt. v
ist das Element, das aus dem Array entfernt werden würde. Im restlichen Code sowie in allen anderen Details wird dies berücksichtigt.Erhalten unerwartetes Ergebnis beim Versuch, Element aus Array in C
Im Folgenden ist der Code, den ich für die Funktion geschrieben haben:
void delete_set(int v, int a[])
{
int i;
int j;
for (i = 0; i < a[0]; i++)
if (a[i] == v)
{
for(j = i; j < a[0]; j++)
a[j] = a[j + 1];
a[0] = a[0] - 1;
}
}
Also, ich bin nicht sicher, ob Sie den Rest des Codes außerhalb dieser Funktion sehen, müsste es Sinn zu machen, aber mein Problem ist das. Was auch immer ich a[i] ==
an (in der if-Anweisung), wenn die Länge des Array einlesen genau diese Zahl ist, bekomme ich eine unerwartete Antwort. Bei jeder anderen Länge des Arrays erhalten wir jedoch (korrekte) Ergebnisse. Jede Änderung in der Codierung müsste innerhalb der Funktion erfolgen, da mir dieses Problem so präsentiert wurde.
Danke, und Entschuldigung für die lange Post (wenn es ist). Ich bin es nicht gewohnt, Foren zu benutzen.
Ist eine [0] die Länge des Arrays einschließlich a [0]? –
'if (a [i] == v)' -> 'while (a [i] == v)' – BLUEPIXY