0 Daumen
1k Aufrufe

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

void print_array(int array[], int len) {
   
}
// Bestimmung der Summe
int sum(int array[], int len){
    int sum = 0;
    for(int i = 0; i < len; i++) {
        sum = sum + array[i];
    }
    return sum;
}


int main() {
    int array[] = {9, 4, 7, 8, 10, 5, 1, 6, 3, 2};
    int len = 10;
    print_array(array, len);

    printf ("%d", sum);

}


Hallo, ich verstehe nicht, warum ich hier die Ausgabe : 4195728 bekomme.

Irgendwie klappt das returnen nicht richtig, denn ohne die Funktion, funktioniert  mein Vorhaben.

Könnt ihr mir erklären was hier falsch läuft?

Avatar von

Hier liegt einiges im Argen. Was soll das Programm denn machen? Wie ist die Funktion print_array implementiert (hier noch leer)?

Hallo,
die Funktion void ist noch leer, da hier eine andere Aufgabe bearbeitet werden soll, unabhängig von meiner jetzigen.

Das Programm soll die Summe der Zahlen im array herausgeben, dabei soll die Reihenfolge dort eingehalten  und in der Funktion main ausgegeben werden.


Zum besseren Verständnis, hier die Vorlage:


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

void print_array(int array[], int len) {
    // HIER Code für die Ausgabe des Arrays  einfügen, also Array: 9, 4, 7, 8, 10, 5, 1, 6, 3, 2
}

// Schreibe die Funktion "sum", "min" und "max"

int main() {
    int array[] = {9, 4, 7, 8, 10, 5, 1, 6, 3, 2};
    int len = 10;
    print_array(array, len);
    // Gebe hier nacheinander das Minimum, Maximum und die Summe
    // aus. Trenne die Werte durch einen einzelnen Zeilenumbruch.
}

Ich habe es grade irgendwie selbst gelöst, aber keine Ahnung warum es funktioniert hat.


void print_array(int array[], int len) {

  for(int i = 0; i < len; i++) {
        if(i==0){
            //printf("Array: %d",array[0]);
        }
        if(i>0){
            //printf(",%d",array[i]);
        }
  }

}

// Schreibe die Funktion "sum", "min" und "max"
int sum(int array[], int len){
    int sum = 0;
    for(int i = 0; i < len; i++) {
            sum = sum + array[i];
    }
    //printf("%d",sum);
    return sum;
}



int main() {
    int array[] = {9, 4, 7, 8, 10, 5, 1, 6, 3, 2};
    int len = 10;
    print_array(array, len);
    int summe = sum(array, len);  // ich habe es hier auf die Variable Summe gespeichert und diese dann mit Printf ausgegeben. Warum dies unktioniert, I dont know
   
    printf("\nSumme: %d", summe);


}

1 Antwort

0 Daumen
Ich habe es grade irgendwie selbst gelöst, aber keine Ahnung warum es funktioniert hat.

sum(array, len); berechnet die Summe der Array-Elemente und gibt sie zurück. Das Ergebnis, welches Du in der Variable summe speicherst, wird durch das printf auf der Konsole ausgegeben.

PS: void ist nicht der Name der Funktion, sondern ein Pseudodatentyp. Dieser signalisiert, dass die Funktion nichts zurückgibt.

Avatar von

Ein anderes Problem?

Stell deine Frage

Ähnliche Fragen

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community