RegistrierenRegistrieren   LoginLogin   FAQFAQ    SuchenSuchen   
Array - Felder berechnen
 
Neue Frage »
Antworten »
    Foren-Übersicht -> Sonstiges
Autor Nachricht
Array
Gast





Beitrag Array Verfasst am: 02. Nov 2021 18:41    Titel: Array - Felder berechnen Antworten mit Zitat

Möchte ein beliebiges Array in C initialisieren mit 10 Feldern und daraus mittels einer For-Schleife die Summe berechnen. Doch mein Code liefert nur sehr hohe Zahlen und JEDES MAL ein Minus Zeichen davor... vlt kann sich den jemand mal anschauen?

#include <stdio.h>
#include <stdlib.h>

int main(){

int i;
int iSumme = 0;
int iFeld[10];


for(i=0; i<10; i++)
{

iSumme += iFeld[i];

}

printf("\nDie Summe aller Elemente im Array ist: %d", iSumme);

}
index_razor



Anmeldungsdatum: 14.08.2014
Beiträge: 3259

Beitrag index_razor Verfasst am: 02. Nov 2021 19:00    Titel: Antworten mit Zitat

Du hast vergessen iFeld zu initialisieren.
Array
Gast





Beitrag Array Verfasst am: 02. Nov 2021 19:16    Titel: Antworten mit Zitat

Ok danke, hab das mal verbessert. Soll jetzt die Summe und den Mittelwert jeweils in Unterfunktionen berechnen lassen, aber ich bekomme 15(!) Fehlermeldungen und finde die Probleme einfach nicht...

Kann mir jemand sagen, wie ich meinen Code verbessern muss?

include <stdio.h>
#include <stdlib.h>



int summe(iFeld[10]){

for(i=0; i<10; i++)
{

iSumme += iFeld[i];

}

return iSumme;

}

float mittelwert(iSumme){


fMittelwert = iSumme / 10.0;

return fMittelwert;
}

int main(){



iSumme = summe(iFeld[10]);

printf("\nDie Summe aller Elemente im Array ist: %d", iSumme);

fMittelwert = mittelwert(iSumme);

printf("\n\nDer Mittelwert aller Elemente ist %.2f\n", fMittelwert);


return 0;

}
schnudl
Moderator


Anmeldungsdatum: 15.11.2005
Beiträge: 6979
Wohnort: Wien

Beitrag schnudl Verfasst am: 02. Nov 2021 19:32    Titel: Antworten mit Zitat

Probier's mal so:

Ich erklär jetzt aber nicht alles einzeln...dir fehlen die Grundlagen noch fast komplett ...

Code:

#include <stdio.h>
#include <stdlib.h>


int summe(int iFeld[], int anzahl)
{
    int isumme = 0;
    for(int i=0; i<anzahl; i++)
    {
        isumme += iFeld[i];
    }
    return isumme;
}

float mittelwert(int iSumme, int anzahl)
{
    return iSumme/(float)anzahl;
}

int main()
{
    int iFeld[10] = {0, 10, 20, 30, 40, 50, 60, 70, 80, 90};
    int iAnzahl = sizeof(iFeld)/sizeof(int);
   
    int iSumme = summe(iFeld, iAnzahl);
    printf("\nDie Summe aller Elemente im Array ist: %d", iSumme);
   
    float fMittelwert = mittelwert(iSumme, iAnzahl);
    printf("\n\nDer Mittelwert aller Elemente ist %.2f\n", fMittelwert);
   
    return 0;
}






Code:

Die Summe aller Elemente im Array ist: 450

Der Mittelwert aller Elemente ist 45.00

_________________
Wenn du eine weise Antwort verlangst, musst du vernünftig fragen (Goethe)


Zuletzt bearbeitet von schnudl am 02. Nov 2021 19:56, insgesamt 3-mal bearbeitet
index_razor



Anmeldungsdatum: 14.08.2014
Beiträge: 3259

Beitrag index_razor Verfasst am: 02. Nov 2021 19:38    Titel: Antworten mit Zitat

Array hat Folgendes geschrieben:
Ok danke, hab das mal verbessert.


Davon ist aber nichts zu sehen. In der jetzigen Version fehlt nun außerdem jede einzelne Variablendeklaration. Bevor du einen Bezeichner wie "iSumme" verwendest, mußt du sagen welchen Typ er haben soll, z.B.

Code:
int iSumme = 0;


In der ursprünglichen Version hattest du das auch getan. Dasselbe gilt für die formalen Parameter in Funktionsdefinitionen. Die Zeile

Code:
int summe(iFeld[10]){


ergibt also nicht viel Sinn.
Neue Frage »
Antworten »
    Foren-Übersicht -> Sonstiges