Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo zusammen,

ich habe einen Fehler bei der Skalarmultiplikation von Zwei int-Vektoren. Leider finde ich ihn nicht. Vlt. kann mir einer von euch behilflich sein.

#include <stdio.h>

int scalar(int (*vec1)[],int (*vec2)[],int laenge)

{

int i,res=0;

for(i=0;i<laenge;i++)

{

res=+ (*vec1) * (*vec2);

}

return res;

}

int main()

{

int veca[3],vecb[3],lenth=3,skalar;

printf("Gib zwei Vektoren ein: \n");

printf("Erster Vektor: ");

scanf("%d",veca);

printf("\nZweiter Vektor: ");

fflush(stdin);

scanf("%d",vecb);

fflush(stdin);

skalar=scalar(veca,vecb,lenth);

printf("Das Skalar lautet: %d\n\n",skalar);

getchar();

return 0;

}

Geschrieben

Die Berechnung des Skalarprodukts sieht gut aus, aber du befüllst deine Vektoren nicht ordentlich. Du liest nur zwei ints vom Benutzer ein, die steckst du in die jeweils erste Komponente deiner Vektoren. Was ist mit dem Rest?

Und beim nächsten Mal bitte eine ausführlichere Fehlerbeschreibung als "ich habe einen Fehler" ;)

Und noch eins: fflush(stdin) erzeugt undefiniertes Verhalten, außer bei Microsoft-Compilern.

Geschrieben

Erstmal danke für die Antwort.

ALso ich habe das jetzt wie folgt geändert:

printf("Erster Vektor: ");

scanf("%d %d %d",&veca[0],&veca[1],&veca[2]);

printf("\nZweiter Vektor: ");

scanf("%d %d %d",&vecb[0],&vecb[1],&vecb[2]);

.

Aber irgendwie klappt das trotzdem nicht?

Geschrieben

Jetzt vlt. ausführlicher :).

Habe das so eingegeben wie du es gesagt hast. Der findet keine Syntaxfehler aber der startet das Programm trotzdem nicht. Habe ich die Werte eventuell falsch übergeben?

Geschrieben

Sorry, muss mich verbessern. Der Compiler startet das Programm schon, aber nachdem ich die beiden vektoren eingegeben habe, öffnet sich ein Fenster wo steht (WS 07/08.exe funktioniert nicht mehr) ("WS 07/08" ist der Name vom Projekt).

Geschrieben
Der Compiler startet das Programm schon
Der Compiler übersetzt das Programm, starten musst du es schon selbst (oder deine Entwicklungsumgebung).

aber nachdem ich die beiden vektoren eingegeben habe, öffnet sich ein Fenster wo steht (WS 07/08.exe funktioniert nicht mehr) ("WS 07/08" ist der Name vom Projekt).
Ein Schrägstrich im Dateinamen? Wie hast du das denn geschafft?
Geschrieben
Habe keinen Schrägstrich im Projektnamen. Das war nur ein Pseudoname den ich eben angegeben hatte. IN echt steht dort WS0708.
Hast du uns vielleicht auch nur Pseudocode gezeigt? Dein Code läuft nämlich bei mir prima.
Geschrieben
Schade, dass keiner weiss wo der Fehler liegt. Aber trotzdem danke.

Das obige Programm enthält mehrere Fehler und dürfte nicht mal durch den Compiler gekommen sein.

Geschrieben

Wäre nett, wenn du die Fehler nennen könntest. Denn ich sehe keine. Und wie gesagt, die Vektoren kann ich eingeben. Nur danach bei der Berechnung des Skalars überlastet das Programm.

Geschrieben
Wäre nett, wenn du die Fehler nennen könntest. Denn ich sehe keine. Und wie gesagt, die Vektoren kann ich eingeben.

Welcher Compiler lässt das durchgehen? Um mal anzufangen: "veca" ist ein int-Array, was einem Zeiger auf int-Werte entspricht. Die Funktion "scalar" erwartet, so wie sie oben steht, jedoch einen Zeiger auf ein Array von int-Zeigern.

Nur danach bei der Berechnung des Skalars überlastet das Programm.

Überlastet? Es ist vermutlich ein Absturz gemeint.

Geschrieben

Versuche das Programm mal als C++-Programm mit einem C++-Compiler zu compilieren. Als C-Programm compiliert geht es zwar (mit Warnung) durch den C-Compiler, aber falsch ist es trotzdem.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...