Mittelwert berechnen



  • hab einen Fehler selbst gefunden in Zeile 39 muss es natürlich

    erg=mittelwert(arr);
    

    lauten,

    jetzt bekomm ich aber jedesmal als Ergebnis. 1 😕



  • wie soll ich in Zeile 29 denn sonst die Größe des Arrays bestimmen?



  • Jetzt funktioniert das Programm, ich wusste nicht, dass ich noch einen extra Parameter für die größe des Arrays übergeben muss.

    Aber wie sollte Zeile 29 sonst lauten?



  • hugo321 schrieb:

    Jetzt funktioniert das Programm, ich wusste nicht, dass ich noch einen extra Parameter für die größe des Arrays übergeben muss.

    Aber wie sollte Zeile 29 sonst lauten?

    leg den Speicher am Heap an:
    Mit malloc() kannst du dir Speicher holen - in deinem Fall brauchst du a*sizeof(int) Byte.

    int arr[a];

    wird dann du

    int* arr=malloc(a*sizeof(int));

    Wenn du den Speicher nicht mehr brauchst rufst du free(arr) auf.



  • ok, aber was ist daran denn besser?

    es ist doch nur umständlicher und es besteht die gefahr das free am schluss zu vergessen. 😕



  • Suche einfach in Google nach den Vor und Nachteilen der Variable Length Arrays aus C99.

    Grundsätzlich sehe ich kein Problem in deinem Fall das so zu verwenden. Sollte jemand anderer Meinung sein bitte begründen - denn "- nur Deppen benutzen VLA (Zeile 29) " ist eine Meinung, aber keine Begründung. Lass uns an deinem Wissen teilhaben lieber Wutz 😉



  • ggfhdfg schrieb:

    Grundsätzlich sehe ich kein Problem in deinem Fall das so zu verwenden. Sollte jemand anderer Meinung sein bitte begründen - denn "- nur Deppen benutzen VLA (Zeile 29) " ist eine Meinung, aber keine Begründung. Lass uns an deinem Wissen teilhaben lieber Wutz 😉

    Wie bemerkst Du denn, dass die Zahl die der User für die Elemente im VLA angibt zu groß ist? Das ist doch der Paradefall für einen sicherheitskritischen Bug?

    Wutz' Aussage ist zwar drastisch, aber im Zusammenhang mit diesem Forum ist es nunmal so, dass 100% der VLAs hier unbewusst benutzt werden.
    Prinzipiell ist das nix schlechtes - ich finde es sogar toll, dass man auch intuitiv C programmieren kann. Aber die Leute müssen IMHO darauf hingewiesen werden, dass Sie da ein Feature nutzen, dass letztlich nur ein sehr begrenztes Einsatzgebiet hat, eben durch seinen begrenzten Scope

    Dynamischer Speicher mit *alloc() ist dagegen auch keine Raketentechnik und sehr viel flexibler.

    In der freien Wildbahn habe ich übrigens noch kein VLA gesehen. Tatsächlich das eine oder andere alloca() .


  • Mod

    Ich würde ja sagen, dass hier überhaupt gar kein Array irgendeiner Art nötig ist.



  • ggfhdfg schrieb:

    Sollte jemand anderer Meinung sein bitte begründen - denn "- nur Deppen benutzen VLA (Zeile 29) " ist eine Meinung, aber keine Begründung. Lass uns an deinem Wissen teilhaben lieber Wutz 😉

    Netter aber durchschaubarer Versuch, hier jahrelange Erfahrungen komprimiert+kostenlos abgreifen zu wollen.

    Furble Wurble schrieb:

    Wutz' Aussage ist zwar drastisch

    Ach, drastisch? Und was ist dann "godfather himself"?
    Linus vs C++

    Nicht dass ich mich irgendwie mit ihm vergleichen möchte, aber ein paar Ansichten scheinen wir gemeinsam zu haben.



  • Wutz schrieb:

    Furble Wurble schrieb:

    Wutz' Aussage ist zwar drastisch

    Ach, drastisch? Und was ist dann "godfather himself"?
    Linus vs C++

    Wie wäre es mit: ein Idiot?



  • Ich bin einfach mal SeppJs Meinung: Überhaupt kein array notwendig.



  • Mag sein, dass du mit deinem C++ Fokus lieber Stroustrup+Sutter folgst, aber das sei jedem unbenommen.
    Für mich ist LT jedenfalls aufgrund seiner nachgewiesenen Praxisrelevanz unangreifbar; der Mann weiß wovon er redet, anders als andere Leute, die irgendwelche Bücher schreiben oder Gremien vorstehen und meinen, sie hätten Ahnung von Realisierungen großer Praxisprojekte.



  • Wutz schrieb:

    Mag sein, dass du mit deinem C++ Fokus lieber Stroustrup+Sutter folgst, aber das sei jedem unbenommen.

    Eben. Und deshalb muss er nicht Leute und andere Ansichten beleidigen.

    Für mich ist LT jedenfalls aufgrund seiner nachgewiesenen Praxisrelevanz unangreifbar; der Mann weiß wovon er redet,

    Ja, der weiß von C. Nicht von C++. Demzufolge sollte er auch nicht so viel Schwachsinn darüber schreiben.
    Es gibt ausreichend gute, maintainable C++ Softwareprojekte, die zeigen, dass das in C++ auch sehr gut möglich ist.

    Aber du magst C, ich C++, wir beide wollen uns wohl nicht ändern.
    Und sorry für OT.



  • EOP schrieb:

    Ich bin einfach mal SeppJs Meinung: Überhaupt kein array notwendig.

    das stimmt, aber die Aufgabenstellung war es eben, die Zahlen in Array zu speichern und dann mittels einer Funktion des Mittelwert zu bestimmen.


Anmelden zum Antworten