-1
私は、ヘッダーファイルで定義された関数を使用し、スロープをメイン関数に返すことによって、ユーザーによるスロープ入力を計算しようとしています。関数が10進数を返さず、時には間違った値を返しますか?
今私の問題は、私の数式が正しいのに、プログラムが計算する勾配が間違っていることです。
また、時には与えられた傾きがちょうど四捨五入され、ランダムに負であることもあります。私はここで何か悪いことをしましたか?
私のメインのコード:
#include <iostream>
#include "findSlope.h"
using namespace std;
int main()
{
float p1, p2, p3, p4, rep, slope;
int i;
cout << "input point 1:";
cin >> p1;
cout << "input point 2:";
cin >> p2;
cout << "input point 3:";
cin >> p3;
cout << "input point 4:";
cin >> p4;
cout << "input amount of repetition:";
cin >> rep;
cout << "\nYour points are =" << p1 << "\t"
<< p2 << "\t" << p3 << "\t" << p4;
for (i=0;i<rep;i++)
{
slope = findSlope(p1,p2,p3,p4,rep);
cout << "Point 1\tPoint2\tSlope\n";
cout << "("<<p1<<","<<p2<<")\t";
cout << "("<<p3<<","<<p4<<")\t";
cout << slope;
}
return 0;
}
私のヘッダファイル:原則として
#include <iostream>
using namespace std;
findSlope(float p1,float p2,float p3,float p4,float rep)
{
float slope;
cout << "\nInput your first coordinates (seperated by space) :";
cin >> p1 >> p2;
cout << "Input your second coordinates (seperated by space) :";
cin >> p3 >> p4;
slope = (p4-p2)/(p3-p1);
return slope;
}
'main'はユーザにいくつかの数字を入力するように要求し、それらを' findSlope'に渡します。後者はこれらのパラメータを完全に無視し、さらに多くの数値を入力するように求め、それらの計算を実行します。あなたはそれをこのように意味しましたか? –
ヘッダーファイルに*関数*を定義しないでください。 [ヘッダーファイルで 'using namespace std;'を使わないでください(https://stackoverflow.com/questions/14575799/using-namespace-std-in-a-header-file)(または[一般的には(https ://stackoverflow.com/questions/1452721/why-is-using-namespace-std-considered-bad-practice))。 [ヘッダーを含むガード](https://en.wikipedia.org/wiki/Include_guard)と['#pragma once'](https://en.wikipedia.org/wiki/Pragma_once)について学んでください。そして、コンパイラの警告を読んでください。 –
あなたの 'for'ループは同じことを' rep'時間計算します。あなたはそれをこのように意味しましたか? – EJP