c-programm kann JMD HELFEN



  • itte schaut euch diesen CODE von einer funktion an....ich weiss nicht was ich falsch habe......BITTE helft mir.....

    das wird angezeigt:

    60 invalid operands to binary*
    66 koordinaten array undeclared (first in use in this funktion)
    66 syntax error befor ',' token
    69 syntax error befor ',' token
    72 syntax error befor ',' token
    106 syntax error at end of input

    void eingabe_berechnung(void){
    
    double *a,*b,*c,*d =0;
    double koeff_zahl[4];
    
    int funk=0,funk1=0,funk2=0;
    int x=0;
    
    *a=koeff[3];
    *b=koeff[2];
    *c=koeff[1];
    *d=koeff[0];
    
    printf("Koeffizienten fuer x^3 eingeben: ");
    scanf("%lf", &koeff_zahl[0]); a=&koeff_zahl[0];
    printf("Koeffizienten fuer x^2 eingeben: ");
    scanf("%lf", &koeff_zahl[1]); b=&koeff_zahl[1];
    printf("Koeffizienten fuer x^1 eingeben: ");
    scanf("%lf", &koeff_zahl[2]); c=&koeff_zahl[2];
    printf("Koeffizienten fuer x^0 eingeben: ");
    scanf("%lf", &koeff_zahl[3]); d=&koeff_zahl[3];
    
    for (x;x<y_achse;x++){
    funk=(a*x*x*x+b*x*x+c*x+d)+0.5;
    funk1=((3*a)*(x*x)+(2*b)*(x)+c)+0.5;
    funk2=((6*a)*x+(2*b))+0.5;
    
    if (funk >= 0 && funk<x_achse)(
    koordinaten_array[funk][x]='*';
    }
    if (funk >= 0 && funk1<x_achse)(
    koordinaten_array[funk1][x]='+';
    }
    if (funk >= 0 && funk2<x_achse)(
    koordinaten_array[funk2][x]='#';
    }
    }
    
    }
    

    Edit by c.rackwitz: ich bitte um cpp Tags



  • Wenn du willst dass dir jemand hilft, dann benutze

    Tags und zeig auch bitte in welcher Zeile welcher Fehler angemeckert wird.



  • if (funk >= 0 && funk<x_achse)(
    if (funk >= 0 && funk1<x_achse)(
    if (funk >= 0 && funk2<x_achse)(

    am ende dieser zeilen sollte wohl ein '{' sein, kein '('



  • Die if Bedingungen müssen in der Form

    if((bed1) && (bed2))
    

    sein.



  • ich danke euch....aber hier wird doch auch für C leute hilfe angeboten oder? nicht nur C++ @net?



  • ICH DANKE euch alllen....
    aber hier ist immer noch ein FEHLER:

    for (x;x<y_achse;x++){
    
    funk=(a*x*x*x+b*x*x+c*x+d)+0.5;
    funk1=((3*a)*(x*x)+(2*b)*(x)+c)+0.5;
    funk2=((6*a)*x+(2*b))+0.5;
    

    invalid operands to binary * steht dann immer da

    -------------------------------------------------------------------------------
    und bei dieser funktion steht: syntax error before numeric constant

    void array_leeren(int koordinaten_array[][y_achse], int x_achse){
    
    int lauf1=0;
    int lauf2=0;
    
    for (lauf1;lauf1>x_achse;lauf1++){
        for (lauf2;lauf2>y_achse;lauf2++){  
            koordinaten_array[lauf1][lauf2]= ' ';
        }
    
    }      
    
    }
    

    Edit by c.rackwitz: ich bitte um cpp Tags



  • Bitte tue deinen Code formatieren. Das sieht echt übel aus! 😉



  • ICH DANKE euch alllen....
    aber hier ist immer noch ein FEHLER:

    for (x;x<y_achse;x++){
        funk=(a*x*x*x+b*x*x+c*x+d)+0.5;
        funk1=((3*a)*(x*x)+(2*b)*(x)+c)+0.5;
        funk2=((6*a)*x+(2*b))+0.5;
    

    invalid operands to binary * steht dann immer da

    -------------------------------------------------------------------------------
    und bei dieser funktion steht: syntax error before numeric constant

    void array_leeren(int koordinaten_array[][y_achse], int x_achse){
    
    int lauf1=0;
    int lauf2=0;
    
    for (lauf1;lauf1>x_achse;lauf1++){
        for (lauf2;lauf2>y_achse;lauf2++){
        koordinaten_array[lauf1][lauf2]= ' ';
    }
    
    }  
    
    }
    

    Edit by c.rackwitz: ich bitte um cpp Tags



  • Benutz bitte endlich cpp Tags, auch wenn es kein C++ ist. Okay?

    Offensichtlich fehlt es bei dir an den Grundlagen. Versuch bitte deine Antworten aus diesem oder einem anderen Tutorial zu finden.
    http://www.pronix.de/pronix-4.html



  • Wieso sollte er denn

    Tags benutzen? Ihm wird doch auch so geholfen und nette Mods pimpen seine Beiträge sowieso 😉



  • Erstens: Du hast a bis d als Pointer deklariert (ganz nebenbei auch noch, ohne sie auf vernünftigen Speicher zeigen zu lassen).

    Zweitens: Wo und wie ist "koordinaten_array" deklariert?

    Drittens: a ist wie gesagt ein Pointer auf double - und Pointer kann man nicht multiplizieren. (richtig sollte es entweder "double a,b,c,d;" am Anfang heißen oder "func = *a * x*x*x + *b * x*x + *c * x + *d + 0.5;")



  • sorryy aber ich kann kein CPP....sondern nur c
    wenn man sich mal hier umsieht...bekommen viele andere auch
    antoworten,obwohl es C ist und nicht cpp...

    aber danke euch nochmal



  • danke cstoll soweit.....



  • koordinatan_array ist in der main funktion



  • viperv1 schrieb:

    antoworten,obwohl es C ist und nicht cpp...

    Wenn es dir nur um die Tag-Bezeichnung geht: [cpp] wird hier auch für C-Codes verwendet 😉

    koordinatan_array ist in der main funktion

    Also lokal - d.h. das Programm kennt es außerhalb der main() auch nicht (außer du schickst es per Parameter an andere Funktionen weiter)



  • ich glaube ich mache es dann lieber global dann sehe ich weiter, wie ich das andere hinbekommen kann....danke auf deinen hinweis...hat mir keiner erklärt..

    die scanfanweisung wird makiert und es wird folgender fehler ausgegeben:
    incompatible types in assignment

    [cpp]void eingabe_berechnung(void){

    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]); a=&koeff_zahl[0];
    printf("Koeffizienten fuer x^2 eingeben: ");
    scanf("%lf", &koeff_zahl[1]); b=&koeff_zahl[1];
    printf("Koeffizienten fuer x^1 eingeben: ");
    scanf("%lf", &koeff_zahl[2]); c=&koeff_zahl[2];
    printf("Koeffizienten fuer x^0 eingeben: ");
    scanf("%lf", &koeff_zahl[3]); d=&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++){
    funk=(a*x*x*x+b*x*x+c*x+d)+0.5;
    funk1=((3*a)*(x*x)+(2*b)(x)+c)+0.5;
    funk2=((6*a)*x+(2
    b))+0.5;

    if ((funk >= 0) && (funk<x_achse)){
    koordinaten_array[funk][x]='*';
    }
    if ((funk >= 0) && (funk1<x_achse)){
    koordinaten_array[funk1][x]='+';
    }
    if ((funk >= 0) && (funk2<x_achse)){
    koordinaten_array[funk2][x]='#';
    }
    }
    }[/cpp]



  • ich glaube ich mache es dann lieber global dann sehe ich weiter, wie ich das andere hinbekommen kann....danke auf deinen hinweis...hat mir keiner erklärt..

    die scanfanweisung wird makiert und es wird folgender fehler ausgegeben:
    incompatible types in assignment

    void eingabe_berechnung(void){
    
    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]); a=&koeff_zahl[0];
    printf("Koeffizienten fuer x^2 eingeben: ");
    scanf("%lf", &koeff_zahl[1]); b=&koeff_zahl[1];
    printf("Koeffizienten fuer x^1 eingeben: ");
    scanf("%lf", &koeff_zahl[2]); c=&koeff_zahl[2];
    printf("Koeffizienten fuer x^0 eingeben: ");
    scanf("%lf", &koeff_zahl[3]); d=&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++){
    funk=(a*x*x*x+b*x*x+c*x+d)+0.5;
    funk1=((3*a)*(x*x)+(2*b)*(x)+c)+0.5;
    funk2=((6*a)*x+(2*b))+0.5;
    
    if ((funk >= 0) && (funk<x_achse)){
    koordinaten_array[funk][x]='*';
    }
    if ((funk >= 0) && (funk1<x_achse)){
    koordinaten_array[funk1][x]='+';
    }
    if ((funk >= 0) && (funk2<x_achse)){
    koordinaten_array[funk2][x]='#';
    }
    }
    }
    


  • viperv1 schrieb:

    void eingabe_berechnung(void){
    double a,b,c,d =0;
    //...
    scanf("%lf", &koeff_zahl[0]);
    a=&koeff_zahl[0];// ich nehme an, das ist der Fehler ;)
    

    Du hast die Koeffizienten wieder als double definiert - also mußt du ihnen auch double-Werte zuweisen und keine Speicheradressen 😉 (im Klartext: das & ist an der Stelle überflüssig)



  • ohhhhhhhhh mannnnnnnnnnnnnn
    dankkkkkkkkkkkkeee du bist echt in ordnung....danke ich habe diesen fehler garnicht gesehen...danke..nochmal danke danke danke

    habe nur noch diese stell....die nicht richtig geht
    die markieret zeil: syntax error before numeric constant

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

    int lauf1=0;
    int lauf2=0;

    for (lauf1;lauf1<x_achse;lauf1++){
    for (lauf2;lauf2<y_achse;lauf2++){
    koordinaten_array[lauf1][lauf2]= ' ';
    }

    }
    } [/cpp]



  • ohhhhhhhhh mannnnnnnnnnnnnn
    dankkkkkkkkkkkkeee du bist echt in ordnung....danke ich habe diesen fehler garnicht gesehen...danke..nochmal danke danke danke

    habe nur noch diese stell....die nicht richtig geht
    AM anfang der funktion: syntax error before numeric constant

    void array_leeren(int koordinaten_array[][y_achse], int x_achse){
    
    int lauf1=0;
    int lauf2=0;
    
    for (lauf1;lauf1<x_achse;lauf1++){
    for (lauf2;lauf2<y_achse;lauf2++){
    koordinaten_array[lauf1][lauf2]= ' ';
    }
    
    }
    }
    

Anmelden zum Antworten