[解決済み】エラー。式はintegralまたはunscoped enum型でなければなりません。
2022-01-11 04:20:11
質問
コードは次のとおりです。
#include <iostream>
#include <iomanip>
#include <string>
#include <algorithm>
#include <sstream>
using namespace std;
int main(){
float size;
float sumNum = 0;
float maxNum, minNum;
float mean;
float totalDev = 0;
float devSqr = 0;
float stdDev;
//Create a user input size
std::cout << "How many number would you like to enter? ";
std::cin >> size;
float *temp = new float[size];
//Getting input from the user
for (int x = 1; x <= size; x++){
cout << "Enter temperature " << x << ": ";
cin >> temp[x];
}
//Output of the numbers inserted by the user
cout << endl << "Number --- Temperature" << endl << endl;
for (int x = 1; x <= size; x++){
cout << " " << x << " --- " << temp[x] << endl;
sumNum = sumNum + temp[x];
}
//Calculating the Average
mean = sumNum / size;
maxNum = minNum = temp[1];
for (int x = 1; x <= size; x++){
if (maxNum < temp[x]){
maxNum = temp[x];
}
if (minNum > temp[x]){
minNum = temp[x];
}
}
//Calculating Sample Standard Deviation
for (int x = 1; x <= size; x++){
totalDev = totalDev + (temp[x] - mean);
devSqr = devSqr + (pow((temp[x] - mean), 2));
}
stdDev = sqrt((devSqr / (size - 1)));
cout << endl << "The sum: " << sumNum << endl; //the sum of all input
cout << "The mean: " << mean << endl; //calculate the average
cout << "Maximum number: " << maxNum << endl; // print biggest value
cout << "Minimum number: " << minNum << endl; // print smallest value
cout << "The range between the maximum and the minimum: " << maxNum - minNum << endl; //the range
cout << "Deviation: " << totalDev << endl;
cout << "The squares of deviation: " << devSqr << endl;
cout << "The Standard Deviation: " << setprecision(1) << fixed << stdDev << endl;
system("pause");
}
配列のサイズを取得する際に、(
float *temp = new float[size];
というエラーが発生します。
expression must have integral or unscoped enum type.
数値を入力しようとすると、うまくいくのですが。その後、偏差値から標準偏差まで計算すると、すべて台無しになります。
もし私が
int
を 'size' に、'temp' を
float
と表示され、別のエラーが発生しました。
解決方法は?
あなたの変数
size
と宣言されています。
float size;
浮動小数点型変数を配列のサイズとして使用することはできません - 整数値である必要があります。
キャストして整数に変換することができます。
float *temp = new float[(int)size];
もうひとつの問題は、配列の境界の外側に書いていることでしょう。
float *temp = new float[size];
//Getting input from the user
for (int x = 1; x <= size; x++){
cout << "Enter temperature " << x << ": ";
// cin >> temp[x];
// This should be:
cin >> temp[x - 1];
}
C++では配列はゼロベースなので、これは終わりを超えて書き込まれ、元のコードの最初の要素には決して書き込まれません。
関連
-
batスクリプトからログを出力する方法
-
Swift言語とAppleScriptの違い、AppleScriptの開発状況について教えてください。
-
InstallShield でレジストリキーを取得するスクリプト
-
合理的オブジェクトスクリプトコマンド
-
スプレッドシートに匹敵するオンライングリッドシステム。EditGrid
-
linux シェル学習ノート 2日目
-
ソフトウェアテスト手法の概要
-
[解決済み】gitが「Pull is not possible because you have unmerged files」と言うのはなぜですか?
-
[解決済み】Nullableオブジェクトは値を持たなければならない?
-
[解決済み】スレッド "main "での例外 java.util.NoSuchElementException: 行が見つかりません [重複]。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
git eclipseプラグインのインストール
-
Swift言語とAppleScriptの違い、AppleScriptの開発状況について教えてください。
-
LinuxでRの新バージョンを直接コピーする方法
-
[解決済み】C++エラー: 予想されるunqualified-idを修正する方法
-
[解決済み】'const char*' から 'char*' への無効な変換。
-
[解決済み】データフレームで関数を適用する場合、dim(X)は正の長さでなければならない
-
[解決済み】git pullの取り消し、レポを古い状態に戻す方法
-
[解決済み】ValueError: 入力配列を形状 (224,224,3) から形状 (224,224) にブロードキャストできませんでした。)
-
[解決済み】ウィンドウ階層にないビューを持つUIViewControllerでUIViewControllerを表示しようとする
-
[解決済み】ポインタと整数の比較を警告する