私は前に作業していたプログラムをモジュール化しようとしています。私は主からすべてを取り出し、それを機能に入れました。私の問題は、変数を初期化せずに、ユーザーが数値を入力するのを待たずに、Mainですべてがうまくいけばうまくいきました。これらの関数が関数になったので、私は初期化されていないというエラーが出てきます。どうしてこれなの?私はそれらをすべて0を作る場合は、ユーザーが自分の番号を入力すると、その後の変数がここに0をとどまる私のコードです:関数の初期化されていないローカル変数
#include <iostream>
#include <cstdlib>
using namespace std;
void displayMenu();
void findSquareArea();
void findCircleArea();
void findTriangleArea();
const double PI = 3.14159;
int main()
{
displayMenu();
return 0;
}
void displayMenu() {
int choice;
do {
cout << "Make a selection for the shape you want to find the area of: \n";
cout << "1. Square\n";
cout << "2. Circle\n";
cout << "3. Right Triangle\n";
cout << "4. Quit\n";
cin >> choice;
switch (choice) {
case 1:
findSquareArea();
break;
case 2:
findCircleArea();
break;
case 3:
findTriangleArea();
break;
case 4:
exit(EXIT_FAILURE);
default:
cout << "Invalid entry, please run program again.";
break;
}
for (int i = 0; i <= 4; i++) {
cout << "\n";
}
} while (choice != 4);
}
void findSquareArea() {
double length,
area = length * length;
cout << "Enter the length of the square.";
cin >> length;
cout << "The area of your square is " << area << endl;
}
void findCircleArea() {
double radius,
area = PI * (radius * radius);
cout << "Enter the radius of the circle.\n";
cin >> radius;
cout << "The area of your circle is " << area << endl;
}
void findTriangleArea() {
double height, base,
area = (.5) * (base) * (height);
cout << "Enter the height of the triangle.\n";
cin >> height;
cout << "Enter the length of the base.\n";
cin >> base;
cout << "The area of your triangle is " << area << endl;
}
'倍の長さ、面積=長さ*長...のように記述する必要があります;'あなたはそれを初期化する前に、 'length'を利用 – VTT
問題はどこに長さ*長さとして領域を初期化するのですか? –
これはそのような問題の一般的なパターンです。あなたは 'base'と' radius'と同じことをします – VTT