Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Skalarmultiplikation zweier Vektoren

Empfohlene Antworten

Veröffentlicht

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;

}

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.

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?

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?

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).

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?

:D

Habe keinen Schrägstrich im Projektnamen. Das war nur ein Pseudoname den ich eben angegeben hatte. IN echt steht dort WS0708.

Schade, dass keiner weiss wo der Fehler liegt. Aber trotzdem danke.

ne, kein pseudocode. Ich habe alles eins zu eins vom Quellcode kopiert. Schon komisch, dass es bei dir klappt aber nicht bei mir.

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.

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.

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.

danke für den Hinweis :).

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.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.