Q:
Nachfolgendes Programm berechnet die Summe zweier dreidimensionaler Vektoren. Verändern Sie das Programm nun so, dass es das Skalarprodukt (inneres Produkt) der beiden Vektoren berechnet anstatt der Summe. Geben Sie den Wert des Skalarprodukts mit folgendem Text in einer eigenen Zeile aus:
"Das Skalarprodukt betraegt x.xx."
Das Ergebnis sollen Sie an Stelle von x.xx mit exakt zwei Nachkommastellen ausgeben. Obiger Zeile soll eine Leerzeile vorausgehen.
以下程序计算两个三维向量的总和。现在更改程序,使其计算两个向量的标量积(内积)而不是总和。在单独的行上输出标量乘积的值,并使用以下文本:
“标量乘积是x.xx。”
输出结果,有两个小数位的。上述行前面应有一个空行。
A:
#include <stdio.h>
int main()
{
int z; // Laufvariablen für den Zeilenindex
double vektor1[3], vektor2[3]; // Die beiden Summanden
//double vektorS[3]; // Das Ergebnis der Vektoraddition
double s;
// *** Vektoren einlesen ***
printf("Erster Vektor\n");
for(z = 0; z < 3; z++)
{
printf("Element %i: ", z + 1);
scanf("%lf", &vektor1[z]);
}
printf("\n");
printf("Zweiter Vektor\n");
for(z = 0; z < 3; z++)
{
printf("Element %i: ", z + 1);
scanf("%lf", &vektor2[z]);
}
// *** Berechnung ***
for(z = 0; z < 3; z++)
{
//vektorS[z] = vektor1[z] + vektor2[z];
s += vektor1[z] * vektor2[z];
}
// *** Ausgabe ***
printf("\n");
printf("Das Skalarprodukt betraegt %.2lf.", s);
//printf("Summenvektor\n");
//for (z = 0; z < 3; z++)
//{
// printf(" %.2lf\n", vektorS[z]);
//}
}