Frage



  • Danke, das ist ne gute Idee, leider funzt es ned.
    Was mir ein Rätsel ist, ist dass es bei allen anderen Variablen klappt.
    Die If-clause ist auch identisch und syntaktisch wie logisch richtig sofern ich das beurteilen kann.
    Nichts unterscheidet diese if abfrage von den anderen, alles was meiner Meinung nach noch übrig bleibt ist die eingabe.

    a wird nirgendwoanders überschrieben, da es, wenn ich diese if-clause ausklammere alles funzt.



  • ausserdem sind alle berechnungen in jeder routine nicht direkt von einander abhängig.



  • Kapiers ned, irgendwie komisch 😕

    Hau doch mal den aktuellen Code rein, anstatt der alten ausm ersten Post.



  • ja klar, unterscheidet sich nur nicht so sehr von dem alten.

    #include <stdio.h>
    #include <math.h>
    
    int main ()
    
    {
    
    float a, b,c, a_gross=0,u,d, extra, extra_2,extra_3,i,x, e, f, status, sin_a, sin_b, sin_y,sin_y_1, cos_a, cos_b, cos_y, ha,hb, alpha,alpha_1, beta, special, g, gamma,gamma_2,gamma_1,sin_a_1, h_1, a_1, a_2,cos_y_1
    ;  /*d und c nicht vergessen */
    char zeichen_1[6], zeichen_2[6], zeichen_3[6];
    
    printf ("Bitte geben sie sie ihre erste Angabe ein\n");
    scanf ("%s", zeichen_1);
    getchar ();
    
    printf ("Bitte geben sie ihre zweite Angabe ein\n");
    scanf ("%s", zeichen_2);
    getchar ();
    
    printf ("Geben sie nun ihre dritte Angabe ein\n");
    scanf ("%s", zeichen_3);
    
    printf ("Geben sie bitte den Wert für %c%c an\n", zeichen_1);
    scanf ("%f", &extra);
    getchar ();
    
    printf ("Geben sie bitte den Wert für %c ein\n", zeichen_2);  
    scanf ("%f", &extra_2);
    getchar ();
    
    printf ("Geben sie nun bitte den Wert für %c%c ein\n", zeichen_3);
    scanf ("%f", &extra_3);
    
    if (zeichen_1[0]=='a') { a=extra;}
    if (zeichen_1[0]=='b') { b=extra;}
    if (zeichen_1[0]=='U') { u=extra;}
    if (zeichen_1[0]=='A') { a_gross=extra;}
    if (zeichen_1[0]=='e') { e=extra;}
    if (zeichen_1[0]=='f' ) { f=extra;}
    if (zeichen_1[1]=='a') {ha=extra;}
    if (zeichen_1[1]=='b') {hb=extra;}                                     /* string oder array einrichten*/
    if (zeichen_1[4]=='a') {sin_a=extra;}
    if (zeichen_1[4]=='b') {sin_b=extra;}
    if (zeichen_1[1]=='l') {alpha=extra;}
    if (zeichen_1[1]=='e') {beta=extra;}
    
    if (zeichen_2[0]=='a') { a=extra_2;}
    if (zeichen_2[0]=='b') { b=extra_2;}
    if (zeichen_2[0]=='U') { u=extra_2;}
    if (zeichen_2[0]=='A') { a_gross=extra_2;}
    if (zeichen_2[0]=='e') { e=extra_2;}
    if (zeichen_2[0]=='f' ) { f=extra_2;}
    if (zeichen_2[1]=='a') {ha=extra_2;}
    if (zeichen_2[1]=='b') {hb=extra_2;}                                     /* string oder array einrichten*/
    if (zeichen_2[4]=='a') {sin_a=extra_2;}
    if (zeichen_2[4]=='b') {sin_b=extra_2;}
    if (zeichen_2[1]=='l') {alpha=extra_2;}
    if (zeichen_2[1]=='e') {beta=extra_2;}
    
    if (zeichen_3[0]=='a') { a=extra_3;}
    if (zeichen_3[0]=='b') { b=extra_3;}
    if (zeichen_3[0]=='U') { u=extra_3;}
    if (zeichen_3[0]=='A') { a_gross=extra_3;}
    if (zeichen_3[0]=='e') { e=extra_3;}
    if (zeichen_3[0]=='f' ) { f=extra_3;}
    if (zeichen_3[1]=='a') {ha=extra_3;}
    if (zeichen_3[1]=='b') {hb=extra_3;}                                     /* string oder array einrichten*/
    if (zeichen_3[4]=='a') {sin_a=extra_3;}
    if (zeichen_3[4]=='b') {sin_b=extra_3;}
    if (zeichen_3[1]=='l') {alpha=extra_3;}
    if (zeichen_3[1]=='e') {beta=extra_3;}
    

    Stehen die Variablen fest, durchläuft das Programm eine Menge if-blocks die unabhängig voneinander sind und auch beim debuggen, konnte ich diese Zeile als die identifizieren, die a umschreibt,f ((a_gross!=0)&&(ha!=0))
    {a=a_gross/ha;}, zudem ist A (a_gross) die einzige Variable die auch Probleme macht.
    Daher vermute ich den Fehler in der Eingabe, bzw. der indexzahl des arrays. Komischerweise erscheint die mir auch richtig, da das erste array element ja 0 ist.



  • diese Zeile als die identifizieren, die a umschreibt,f ((a_gross!=0)&&(ha!=0)) {a=a_gross/ha;},

    Wo sitz denn die?



  • oh sry, hab da noch immer die doppel "%c", aba der rest is genauso.
    vorher hab ich ja auch unabsichtlich ne alte if abfrage drinnen gehabt die is jetzt
    ausgebessert.



  • die sitzt irgendwo unten in einem der if-blocks.

    Was komisch is is aber, dass auch wenn a_gross!=0 ist, müssten die befehle abgeblockt werden weil ha ja auch null sein sollte.



  • anno2006 schrieb:

    weil ha ja auch null sein sollte.

    Oh oh, er hat "sollte" gesagt 😃
    Initialisiere alle Variablen mit 0, sonst hast Du irgend nen Bockmist drin, meist ne massiv negative Zahl, aber sicher nicht null.

    Edit: Sorry aber mehr gibt Dein Codebrocken nicht her



  • LOL, np, hat gefunzt, skript lässt sich problemlos ausführen.

    ur strange, aba bitte.

    danke



  • u r wellcum 😃


Anmelden zum Antworten