Ein Histogramm in C erstellen

Was muss ich denn aus meinem eigenen Code weglassen welche Zeilen ...
Hehe...
Überlege dir, was der Code macht, und was die Anforderungen sind.
Dann schaue an, was dein Code macht, und was noch zu tun ist.

Siehst du, ich könnte dir schon schnell deine Aufgabe lösen, aber das bringt dir ja nicht wirklich etwas. Ein grosser Teil des Programmierens ist schlicht Code lesen und verstehen, und ich habe dir eigentlich schon (zu) viel vorgekaut.
Wenn du spezifische Fragen hast, werde ich sie dir gerne beantworten, aber "wie sähe der Code korrekt aus" ist ja nur eine Kopieranleitung, und Kopieren kannst wahrscheinlich schon.

Gruss
cwriter
 
Morgen,
ich hab den ganzen Code weg gemacht nach return 1;
Und da kommt nicht viel.
Ich weiß wirklich nicht welche Berechnung bleiben muss :/
 
C:
#include <stdio.h>

#include <stdlib.h>

#include <math.h>





int main() {

   

   

    int array[10000]={0};

    int i=0, z=0, n=0;

    double avg=0,zahl,minimum,maximum;

   

   

    FILE *fp;

   

    if((fp=fopen("/Users/*********1/A4-2_Beispieldaten/random_uniform.txt", "r"))==NULL) {

        fprintf(stderr, "Konnte Datei nicht finden\n");

        return 1;

    }

    printf("Zahlen wurden bis EOF gelesen\n");

   

    while(fscanf(fp, "%d",&array[i])==1) {

       

        if ( array[i] < 0 || array[i]  > 9999 ) {

            printf("ERR_R\n");

           

            return 1;

        }

       

        z+=array[i];

        i++;

        n++;

       

    }

    avg=(double)z/n;

   

   

    minimum=maximum=array[0];

   

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

        zahl=array[i];

        if (zahl<minimum) {

           

            minimum=zahl;

           

        }

        if(zahl>maximum){

           

            maximum=zahl;

           

        }

       

    }

   

    printf("Der Durchnitt ergibt: %lf\n",avg);

    printf("Minimum: %d\n", (int)minimum);

    printf("Maximum: %d\n", (int)maximum);

    printf("Anzahl n: %d\n",n);

   

    (double)n;

   

    double oben=pow(array[i]-avg,2);

    double summe=0;

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

        summe+=sqrt(oben/n);

       

    }

    printf("Standardabweichung: %lf\n",summe);

   

   

    return 0;

}



    //Iteration über Klassen

    for(size_t j = 0; j < 25; ++j)

    {

       

        printf("\nKlasse %2zu: ", j);

        int elcount = 0;

        unsigned long classmin = j * k;

        unsigned long classmax = (j+1) * k;

        //Iteration über alle (unsortierten) Elemente

        for(size_t i = 0; i < 10000; ++i)

        {

            //Wenn im Klassenbereich, zähle aktuelle Klasse hoch (und gebe Sternchen aus)

            if(array[i] >=  classmin && array[i] < classmax) {

                ++elcount;

              printf("*");

            }

        }

        return 0;

    }
 
Zuletzt bearbeitet:
Und das Problem ist...?
(Die 10000 kannst du durch n ersetzen, classmin und classmax sollten ints, nicht unsigned longs sein)

cwriter
 
Also ich arbeite mit Xcode und der gibt mir nur diesen einen Fehler an, desweiteren sagt er auch, da wo ich unsigned int hatte anstelle int, dass die Definition von Int nicht mehr da ist daher unsigned int rein soll.
 
Zurück