こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

C++で分からないプログラムがあるんですが

#include <iostream>
#include <cmath>

using namespace std;

int main() {

static const int N = 2;
double va[N]={3,-4};
double vb[N]={4,3};
double a,b;
double p;

for (int i = 0; i < N; ++i) {
for (int i = 0; i < N; ++i) {

}
}

cout << "va + vb = (" ;
for (int i = 0; i < N; ++i) {
cout << va[i] + vb[i];
if (i < N - 1) {
cout << ", ";
}
}
cout << ")" << '\n';

cout << "va - vb = (" ;
for (int i = 0; i < N; ++i) {
cout << va[i] - vb[i];
if (i < N - 1) {
cout << ", ";
}
}
cout << ")" << '\n';

p = 0;
for (int i = 0; i < N; ++i) {
p += va[i] * vb[i];
}
cout << "va・vb = " << p << '\n';

a = 0;
for (int i = 0; i < N; ++i) {
a += va[i] * va[i];
}
a = sqrt(a);

b = 0;
for (int i = 0; i < N; ++i) {
b += vb[i] * vb[i];
}
b = sqrt(b);

if (a * b != 0) {
cout << "cosθ = " << p / (a * b) << '\n';
}

return 0;
}

これで、ベクトルの加減とベクトルの内積とcosθが出るんですが、2つのベクトルを適当に初期化しないといけないんですが、初期化ってこれで初期化ってできてますか?

投稿日時 - 2009-11-23 18:10:52

QNo.5470205

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

> double va[N]={3,-4};
> double vb[N]={4,3};

ここで初期化してんじゃないですか?

投稿日時 - 2009-11-23 18:44:57

補足

#include <iostream>
#include <cmath>

using namespace std;

int main() {

static const int N = 2;
double va[N]={3,-4};
double vb[N]={4,3};
double a,b;
double p;

for (int i = 0; i < N; ++i) {
for (int i = 0; i < N; ++i) {

}
}

cout << "va + vb = (" ;
for (int i = 0; i < N; ++i) {
cout << va[i] + vb[i];
if (i < N - 1) {
cout << ", ";
}
}
cout << ")" << '\n';

cout << "va - vb = (" ;
for (int i = 0; i < N; ++i) {
cout << va[i] - vb[i];
if (i < N - 1) {
cout << ", ";
}
}
cout << ")" << '\n';

p = 0;
for (int i = 0; i < N; ++i) {
p += va[i] * vb[i];
}
cout << "va・vb = " << p << '\n';

a = 0;
for (int i = 0; i < N; ++i) {
a += va[i] * va[i];
}
a = sqrt(a);

b = 0;
for (int i = 0; i < N; ++i) {
b += vb[i] * vb[i];
}
b = sqrt(b);

if (a * b != 0) {
cout << "cosθ = " << p / (a * b) << '\n';
}

return 0;
}
でも一緒ですよね?

投稿日時 - 2009-11-23 21:08:52