Vektorproduktberechnung



  • Hi!

    Ich habe ein kleines Programm zur Vektorproduktberechnung geschrieben und habe nun folgendes Problem, dass dem ersten Wert des ersten Vektors immer der letzte Wert des zweiten Vektors zugewiesen wird.
    Wo liegt mein Fehler?

    Danke!

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
    
    int i=0;
    char answ[2];
    
    printf("* * * * * Vektorproduktberechnung * * * * *\n");
    
    int vektor1[2], vektor2[2], produkt[2], vektorprodukt=0;
    
    start:
    printf("\nBitte geben Sie fuer Vektor 1 die Werte ein:\n");
    for(i=0; i<=2; ++i)
    scanf("%d", &vektor1[i]);
    
    printf("\nBitte geben Sie fuer Vektor 2 die Werte ein:\n");
    for(i=0; i<=2; ++i)
    scanf("%d", &vektor2[i]);
    
    printf("\n");
    for(i=0; i<=2; ++i)
    printf("%d\t%d\n", vektor1[i], vektor2[i]);
    
    produkt[0]=vektor1[1]*vektor2[2]-vektor1[2]*vektor2[1];
    produkt[1]=vektor1[2]*vektor2[0]-vektor1[0]*vektor2[2];
    produkt[2]=vektor1[0]*vektor2[1]-vektor1[1]*vektor2[0];
    
    printf("\nDas Vektorprodukt lautet:\n");
    for (i=0; i<=2; ++i)
    printf("%d\n", produkt[i]);
    
    printf("\nNeue Berechnung? ");
    scanf("%s", &answ);
    if (strcmp(answ, "J")==0 || strcmp(answ, "j")==0)
    goto start;
    
      getch();
      return 0;
    }
    


  • öhhhm.

    naa wieviele elemente hat denn

    int vektor1[2];
    

    ??

    und du musst mehr gotos einbauen!!! die werden wieder modern!



  • Also, wie gesagt, definiere erst mal dreidimensionale Vektoren ("int vektor1[3]")...

    xroads42 schrieb:

    und du musst mehr gotos einbauen!!! die werden wieder modern!

    Ähmm...ist das Ironie oder was soll das heißen...?



  • mit C# oder Java wär das nicht passiert...
    *duckundweg*



  • gast123 schrieb:

    mit C# oder Java wär das nicht passiert...
    *duckundweg*

    Hängt ihn, den Verräter! 😃

    xroads42 schrieb:

    und du musst mehr gotos einbauen!!! die werden wieder modern!

    Lass ihn doch. Ist doch nur ein goto. 😃
    Vielleicht hat er ja 'ne do/while Allergie.



  • Also, wie gesagt, definiere erst mal dreidimensionale Vektoren ("int vektor1[3]")...

    autsch ^^



  • Was AUTSCH???



  • im kontext programmierung sind die begriffe vektor und feld manchmal nicht zu unterscheiden, die meisten benutzen die begriffe wohl synonym. und vektor[3] ist eben kein dreidimensionales feld. man kann aber sehr wohl die koordinaten eines mathematischen vektors in diesem feld speichern.

    fazit: klare ausdrucksweise ist gefordert.



  • OK 🙄 , ich habe aber mit "dreidimensional" nicht den Programmier-Kontext gemeint, sondern den Abstraktionskontext der Anwendung, und da geht es ja um Vektoren (und es sollte nur darauf hinweisen, dass der vorige Code auf Anwendungsebene eben nur 2D-Vektoren erzeugt!)


Anmelden zum Antworten