配列をいくつかのif文で分けたいくつかのケースで使用したのですが、開のようなエラーが出てしまいます。
C++
/* **** Pointer print **** */
#include <cstdio>
#include<cstdlib>
// 1:このコードなら、当然 0.885とprintされます。
int main() {
double PC[5]{ 1, 0.885, 0.826, 0.794, 0.775 };
double PCA[5] = { 1, 0.769, 0.709, 0.671, 0.645 };
printf("\n PC[1]=%7.3f\n", PC[1]);
}
// ===================================================
// 2:一方、このコードでは、識別子"PC"が定義されていない、
// または、pointer-to-object型が必要です、とエラー表示されます。
// これで、通す方法はありませんでしょうか、
int main() {
int N = 1;
if (N == 1) {
double PC[5]{ 1, 0.885, 0.826, 0.794, 0.775 };
double PCA[5] = { 1, 0.769, 0.709, 0.671, 0.645};
}
printf("\n PC[1]=%7.3f\n", PC[1]);
}
この質問は下記により、暫定的に解決しました。
・if(N==1),else if(N=2)としたのでは、N=1,N=2以外でエラーになるだろう、と言うことで、if(N=1),elseで試したところ、この部分での”初期値不設定”のエラーは無くなりました。しかしながら、下記の疑問が残りました。
➀品番の大きなコードでは、冒頭部分でN=1,N=2以外は、exit(0)としていること。
②他の部分ではif(N==1),else if(N=2)としているが、エラーになっていない。
ということから、同じ構成にしたのですが、通りませんでした。配列部分はより厳密になっているように感じました。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/01/11 00:45
2022/01/11 01:02
2022/01/11 01:04
2022/01/11 01:08
2022/01/11 02:12
2022/01/11 03:11
2022/01/11 04:32
2022/01/11 04:45