C-Hilfe



  • wie müsste ich das machen? wenn ich die werte abcd gleich einlesen würde?



  • Du gibst doch bei scanf die Adresse der Variablen an, in die eingelesen werden soll. Möglichweise ist dir das nicht bewusst, aber so ist es. Und wenn du da statt der Adresse eines Elements deines Arrays beispielsweise die Adresse von a angibst, dann liest du nicht mehr in ein Element deines Arrays ein, sondern eben in a.



  • ich denke ich habe es! so oder???

    double a,b,c,d =0;
         double koeff_zahl[4];
    
         int funk=0,funk1=0,funk2=0;
         int x=0;
    
         printf("Koeffizienten fuer x^3 eingeben: ");
         scanf("%lf", &koeff_zahl[0]); 
         printf("Koeffizienten fuer x^2 eingeben: ");
         scanf("%lf", &koeff_zahl[1]); 
         printf("Koeffizienten fuer x^1 eingeben: ");
         scanf("%lf", &koeff_zahl[2]); 
         printf("Koeffizienten fuer x^0 eingeben: ");
         scanf("%lf", &koeff_zahl[3]); 
    
         a=koeff_zahl[3]; 
         b=koeff_zahl[2]; 
         c=koeff_zahl[1]; 
         d=koeff_zahl[0];
    


  • HALLOOO bekomme ich keine hilfe mehr?



  • erst, wenn du dich als blizzarac einloggst.



  • ich nicht ER...sondern sind beide in der selben jahrgangsstufe...er hat mir diese seite empfohlen...weil wir nicht die selben codes haben dürfen...sorry.....



  • hehe, ich war schon etwas verwirrt, weil ihr beiden sehr aehnliche IPs habt. andererseits frag ich mich, wieso mich das ueberhaupt verwirrt hat. immerhin kann man das beim groessten deutschen c/c++ forum erwarten...

    dein letzter codeschnipsel sieht uebrigens richtig aus.



  • ich danke dir für dein feedback....jeder kann und darf sich mal irren hehe 😉

    habe nur noch ein Problem...dann bin ich wie ich HOFFE fertig
    auf dem Funktionskopf wird ein fehler angezeigt: syntax error before numeric constant

    void array_leeren(int koordinaten_array[][y_achse], int x_achse){               /*funktion die den array leert*/
    
    int lauf1=0;
    int lauf2=0;
    
        for (lauf1;lauf1<x_achse;lauf1++){                                          /*wenn die Var lauf1 kleiner ist als die x_achse*/
            for (lauf2;lauf2<y_achse;lauf2++){                                      /*dann soll er schaun, ob lauf2 kleiner ist */
                koordinaten_array[lauf1][lauf2]= ' ';                               /*danach soll er den array mit einem LEERZeichen füllen*/
            }                                                                       /*nach jedem springen in die schleife wird der zähler um 1 erhöht.*/
       }
    

    return;
    }



  • corvettev1 schrieb:

    habe nur noch ein Problem...dann bin ich wie ich HOFFE fertig
    auf dem Funktionskopf wird ein fehler angezeigt: syntax error before numeric constant

    Vor längerer Zeit wurdest Du in diesem Thread drauf angesprochen ob x_achse ein #define ist und Du hattest mit "ja" geantwortet.

    Demzufolge steht in der Zeile

    void array_leeren(int koordinaten_array[][y_achse], int x_achse){
    

    hinten eine Zahl (der Wert von #define x_achse). Eine Zahl ist eine "numeric constant" 😉



  • also wirklich...weiss dembezüglich garnicht weiter...wie muss es denn korrekt aussehen?



  • Du weisst dass wenn Du #define x_achse 26 machst jedes Vorkommen des Wortes "x_achse" durch die Zahl "26" ersetzt wird bevor der wirkliche Compiler das Programm bekommt? Sowas nennt man Präprozessor... In der Zeile steht also wenn der Präprozessor durch ist und der Compiler anfängt folgendes:

    void array_leeren(int koordinaten_array[][22], int 76){
    

    Was definitiv wenig Sinn macht. Nunja, wie löst man das Dilemma wenn man zwei "Dings" hat die sich beissen weil Sie den gleichen Namen haben? Benenne ein beliebiges "Dings" in "Bums" um 😃



  • und wie löse ich das problem? ich versuche es schon die ganze zeit...BITTE



  • Tses... Wenn zwei "Dings" sich beissen, benenne ein "Dings" in ein "Bums" um.

    Analogie: Wenn zwei "x_achse" sich beissen, benenne eins davon in "x_achse2" um.

    Wobei ich mich frage wieso Du "x_achse" noch an die Funktion array_leeren übergibst wenn "x_achse" doch sowieso bekannt ist und programmweit den Wert "76" hat? Ich glaube Du solltest den Parameter "int x_achse" für array_leeren ganz weglassen 🙂



  • kann dir keinen meter folgen...ich weiss das du es um einiges besser kannst als ich....bitte habe auch verständnis dafür...ich WILL lernen...aber nicht verspottet werden.
    ich habe doch nur einmal x_achse als define und kein anderes mal definiert...wie sollen die sich dann beissen?
    wenn du sdo gütig wärst und es mir zeigen könntest bitte..wo der fehler wirklihc ist...und wie ich ihn ausmerzen kann? BITTE...muss es nachher per email abgeben...DANKEEEE



  • ursprünglich wollte ich den array in die MAIN setzen...da ich dann merkte das dann nur noch fehler resultieren...habe ich mir gesagt das es GOLBAL einfacher ist...und deswegen den weg gewählt...habe NUN...

    das hier gemacht:

    void array_leeren(void)
    


  • Klar Array global geht auch... Aber nochmal zum Verständnis, wo sich x_achsen beissen

    #define x_achse 76
    
    void array_leeren(int koordinaten_array[][y_achse], int x_achse){
    

    In der ersten Zeile definierst Du "x_achse ist 76". In der zweiten Zeile erzeugst Du einen Parameter vom Typ int, dessen Name "76" ist (da ja zuvor definiert wurde dass "x_achse ist 76"). Da der Name einer Variablen in C mit einem Buchstaben oder Unterstrich beginnen muss -> Fehlermeldung.



  • ach also hääte ich einfach nur den
    den letzeren teil umbennen sollen? also: in x_achse...VERSTEHE...danke

    void array_leeren(int koordinaten_array[][y_achse], int x_achse){
    


  • dank diesem forum bin ich FAST fertig....habe nur Glaube ein letztes problem:

    ich bekomme das koordintankreuz nach der eingabeaufforderung ausgegeben...jedoch werden die Funktionen nicht gesetzt....wie mache ich das....????

    zeige mal meinen code:

    void eingabe_berechnung(void){                                                  /*Hier wird die Eingabe+Berechnung vorgenommen*/
    
         double a,b,c,d =0;
         double koeff_zahl[4];                                                      /*1 Dimm Array deklariert*/
    
         int funk=0,funk1=0,funk2=0;
         int x=0;
    
         printf("Koeffizienten fuer x^3 eingeben: ");                               /*Eingabeaufforderung der Koeffizienten*/
         scanf("%lf", &koeff_zahl[0]); 
         printf("Koeffizienten fuer x^2 eingeben: ");
         scanf("%lf", &koeff_zahl[1]); 
         printf("Koeffizienten fuer x^1 eingeben: ");
         scanf("%lf", &koeff_zahl[2]); 
         printf("Koeffizienten fuer x^0 eingeben: ");
         scanf("%lf", &koeff_zahl[3]); 
    
         a=koeff_zahl[3]; 
         b=koeff_zahl[2]; 
         c=koeff_zahl[1]; 
         d=koeff_zahl[0];
    
         for (x;x<y_achse;x++){                                                     /*Hier ist die Berechnung von den Formeln*/
             funk=(a*x*x*x+b*x*x+c*x+d)+0.5;                                        /*f(x)*/
             funk1=((3*a)*(x*x)+(2*b)*(x)+c)+0.5;                                   /*f(x)'*/
             funk2=((6*a)*x+(2*b))+0.5;                                             /*f(x)''*/
    
             if ((funk >= 0) && (funk<x_achse)){                                    /*Zeichnen der Arrayergenisse ins Koordinatensystem*/
                koordinaten_array[funk][x]='*';
             }
             if ((funk >= 0) && (funk1<x_achse)){                                   /*Zeichnen der Arrayergenisse ins Koordinatensystem*/
                koordinaten_array[funk1][x]='+';
             }
             if ((funk >= 0) && (funk2<x_achse)){                                   /*Zeichnen der Arrayergenisse ins Koordinatensystem*/
                koordinaten_array[funk2][x]='#';
             }
         }
    }
    


  • Wenn du das Array mit den eingetragenen Funktionen ausgegeben haben willst, dann nach der Berechnung:

    array_leeren();
    array_ausgeben();//->leeres Koordinatensystem
    eingabe_berechnung();
    array_ausgeben();//->Koordinatensystem mit Funktionsgraphen
    

    PS1: Das Array koeff kannst du übrigens ganz weglassen:

    double a,b,c,d;
    printf("Koeffizienten fuer x^3 eingeben: ");                               /*Eingabeaufforderung der Koeffizienten*/
    scanf("%lf", &a); 
    printf("Koeffizienten fuer x^2 eingeben: ");
    scanf("%lf", &b); 
    printf("Koeffizienten fuer x^1 eingeben: ");
    scanf("%lf", &c); 
    printf("Koeffizienten fuer x^0 eingeben: ");
    scanf("%lf", &d);
    

    PS2: Wenn ihr zwei verschiedene Personen seid, warum sehen sich dann eure Code-Fragmente so ähnlich?



  • also muss ich eine eigene funktion dafür schreiben oder wie sehe ich das?

    oder einfach meinen CODE abändern oder wie meinst du das?

    double a,b,c,d;
    printf("Koeffizienten fuer x^3 eingeben: ");                               /*Eingabeaufforderung der Koeffizienten*/
    scanf("%lf", &a);
    printf("Koeffizienten fuer x^2 eingeben: ");
    scanf("%lf", &b);
    printf("Koeffizienten fuer x^1 eingeben: ");
    scanf("%lf", &c);
    printf("Koeffizienten fuer x^0 eingeben: ");
    scanf("%lf", &d);
    

    Ps...... wir haben uns gegenseiig geholfen....zudem ist doch sicher so das unter 100 schülern mehrere stark ähnliche teile vorkommen können, denn es gibt denke ich mal auf dem lvl nicht so viele wege....!er ist fertig warum SITZE ich noch hier?
    DANKE


Anmelden zum Antworten