Wie bekomme ich mein Programm zum laufen?



  • Hallo, ich habe ein Problem mit meinen Programm und zwar ist es so wie es ist nicht lauffähig. ich würd mich freunen wenn mir jemand auf die Sprünge helfen könnte. Und über jeden verbesserungsvorschlag bin ich auch dankbar.

    #include "stdafx.h"
    #include <stdio.h>

    void main(void)
    {

    int eingabe;
    int vektor[10];

    // Eingabe der ersten Zahl zum Starten des Programms
    printf("Zum Ausführen des Programms bitte eine Zahl zwischen -99 und 100 eingeben! \n");
    scanf("%f", &eingabe);
    //Wenn die Zahlen im Bereiches von -99 bis +100 sind dann beginnt das Programm
    while ((eingabe > -100)&&(eingabe < 101))
    {
    //Hier nach erfolgt die Eigabe der Zahlen die in die 10 Intervalle eingeteilt werden sollen
    printf("Geben sie eine Zahl ein!");
    scanf("%f", &eingabe);
    // Hier erfolgt die Einteilung in die jeweiligen Intervalle

    if ((eingabe > -100)&&(eingabe < -79)) // 1.Intervall von -99 bis -80
    {
    vektor[0] = 0;
    vektor[0] = vektor [0] +1;
    }
    if ((eingabe > -80)&&(eingabe < -59)) // 2.Intervall von -79 bis -60
    {
    vektor[1] = 0;
    vektor[1] = vektor [1] +1;
    }
    if ((eingabe > -60)&&(eingabe < -39)) // 3.Intervall von -59 bis -40
    {
    vektor[2] = 0;
    vektor[2] = vektor [2] +1;
    }
    if ((eingabe > -40)&&(eingabe < -19)) // 4.Intervall von -39 bis -20
    {
    vektor[3] = 0;
    vektor[3] = vektor [3] +1;
    }
    if ((eingabe > -20)&&(eingabe < 1)) // 5.Intervall von -19 bis 0
    {
    vektor[4] = 0;
    vektor[4] = vektor [4] +1;
    }
    if ((eingabe > 0)&&(eingabe < 21)) // 6.Intervall von 1 bis 20
    {
    vektor[5] = 0;
    vektor[5] = vektor [5] +1;
    }
    if ((eingabe > 20)&&(eingabe < 41)) // 7.Intervall von 21 bis 40
    {
    vektor[6] = 0;
    vektor[6] = vektor [6] +1;
    }
    if ((eingabe > 40)&&(eingabe < 61)) // 8.Intervall von 41 bis 60
    {
    vektor[7] = 0;
    vektor[7] = vektor [7] +1;
    }
    if ((eingabe > 60)&&(eingabe < 81)) // 9.Intervall von 61 bis 80
    {
    vektor[8] = 0;
    vektor[8] = vektor [8] +1;
    }
    if ((eingabe > 80)&&(eingabe < 101)) // 10.Intervall von 81 bis 100
    {
    vektor[9] = 0;
    vektor[9] = vektor [9] +1;
    }
    // Ausgabe des Ergebnisses in Vektorform
    else
    {
    printf("Hier ist der Ergebnisvektor! %3d:", vektor[10]);
    }
    }



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x) in das Forum C (C89 und C99) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • 1. scanf will bei "%f" eine float Zahl einlesen. Dann muss auch ein Zeiger auf eine float-'Zahl übergeben werden. eingabe ist bei dir aber ein int.
    Gib doch nach dem scanf die eingegebene Zahl nochmal aus.

    http://www.cplusplus.com/reference/clibrary/cstdio/scanf/

    2. mit int vektor[10] hast du ein int Feld mit 10 Elementen. Der Index beginnt bei 0 und geht bis 9. D.h. eine Element namens vektor[10] gibt es nicht.

    3. Alle Elemente auf einmal kannst du mit printf nicht ausgeben. dazu brauchst du eine Schleife.

    Du kannst den Index auch berechnen. In der Art:

    vektor[(eingabe + 99) / 20] += 1;
    

    Was soll das Programm überhaupt machen?



  • Ok danke das mit dem Float und dem Integer hab ich mir fast gedacht

    Das Programm soll zahlen einlesen und diese dann in 10 gleich große Intwervalle einteilen. Am ende soll das programm in vektorform ausgeben wieviele Zahlen der jeweiligen Intervalle iengegeben worden sind.



  • Mit dem

    vektor[0] = 0;
    vektor[0] = vektor [0] +1;
    

    steht nach dem Durchlauf in vektor[0] immer eine 1.
    Bei vektor[1] bis vektor[9] ebenso.

    Wie du das Intervall berechnen kannst, habe ich schon geschrieben. Achte nochmal auf die Intervallgrenzen.


Log in to reply