Array erweitern in C?
Hallo.
Als Teil einer Methode in C zur Bestimmung, ob eine Zahl n eine perfekte Zahl ist (Summe aller echten Teiler von n ergibt n) will ich ein Array mit allen Teilern erstellen, welches dynamisch erweitert werden soll, bis alle Teiler enthalten sind. Danach soll man bestimmen können, dass die Zahl perfekt ist, wenn die Summe der Elemente n ergibt, und wenn nicht, dann nicht.
Wie kann ich das Array erweitern? Laut meinen Notizen kann man ein bestimmtes Element hinzufügen durch folgende Form (Beispiel): int array[] = { [7] = 42 } – dem achten Element wird der Wert 42 zugewiesen.
Hier mein bisheriges Programm. Der Wert von divisor soll als Element dem Array divisors[] hinzugefügt werden, wenn es sich um einen echten Teiler handelt, und zwar bis einschließlich der 1:
#include <stdio.h>
int main()
{
int n,m,divisor,divisors[m];
m = 0;
printf("Geben Sie eine ganze Zahl ein.\n");
scanf("%d",&n);
for (divisor = n; divisor > 0;) {
if (n % divisor == 0) {
m++;
divisors[m] = {[m] = divisor};
}
divisor--;
}
return 0;
}
Da meckert der aber rum:
main.c:11:27: error: expected expression before '{' token
Wie muss ich das schreiben, damit es funktioniert?