最近C言語を勉強を始めまして、参考書に載っていた以下のソースプログラムをvisualC++2010に打ち込んだのですがビルドが成功しません
#include <stdio.h>
#include <math.h>
int main(void)
{
int d[33];
double m,v,s;
int n=33;
int i;
double sum;
printf("データを%d個入力してください\n",n);
for(i=0;i<n;i++)
{
printf("date %d=",i+1);
scanf_s("%d",&d[i]);
}
for(sum=0.0,i=0;i<n;i++)
{
sum+=d[i];
}
m=sum/n;
for(sum=0.0,i=0;i<n;i++)
{
sum+=(d[i]-m)*(d[i]-m);
}
v=sum/n;
s=sqrt(v);
printf("平均=%10.3f\n",m);
printf("分数=%10.3f\n",v);
printf("標準偏差=%10.3f\n",s);
return 0;
}
エラーメッセージは
・'scanf' の宣言を確認してください。
・(11): warning C4566: ユニバーサル文字名 '\u00A5' によって表示されている文字は、現在のコード ページ (932) で表示できません
・(14): warning C4566: ユニバーサル文字名 '\u00A5' によって表示されている文字は、現在のコード ページ (932) で表示できません
・(14): error C2065: 'i1' : 定義されていない識別子です。
と出るのですがさっぱりわかりません。どなたか教えてください。
No.2
- 回答日時:
そのエラーになったプログラムをそのまま貼り付けてないのでは?サンプルの方を貼り付けたとか、サンプル見ながら入力しなおした、とか
エラーがあると報告されている行数と、おそらくのそれが出ているであろう行が一致してません。
正しい情報が無ければ、こちらでは判断できません。
エラーメッセージの読み方はわかりますか?
()の中がエラーのある行数、errorはビルドに致命的な「エラー」、warning はビルドはできるけども、場合によっては実行時に問題になる「警告」、その後のC???はエラー番号で、これで検索するとある程度の解説が見付かる。その後は簡単にエラー/警告の内容を説明しているものです。
> ・(14): error C2065: 'i1' : 定義されていない識別子です。
メッセージの通り、定義されていない識別子(変数とか定数とか関数とか) i1 が使われている、というものですが、このプログラム中にどこにも i1 なんて書いてありません。
おそらく
printf("date %d=",i+1);
が
printf("date %d=",i1);
となっているのでは?
/* あと、細かいことを言えば「data」ですね */
> ・'scanf' の宣言を確認してください。
scanfはどこで使っているのでしょう?エラーメッセージはもうすこし長くなかったですか?
> ・(11): warning C4566: ユニバーサル文字名 '\u00A5' によって表示されている文字は、現在のコード ページ (932) で表示できません
ちょっと根が深い問題です。
nの前の\は実際にはどう表示されていますか?
/を反対にしたような記号(バックスラッシュ)でしょうか?円記号でしょうか?
なんにせよ、一度消して、キーボードの円記号のキーを入力しなおしてください。
この回答への補足
新しくプロジェクトを作って以下のように入力してみたら警告がでましたが、実行できました
#include <stdio.h>
#include <math.h>
int main(void)
{
int d[33];
double m,v,s;
int n=33;
int i;
double sum;
printf("データを%d個入力してください\n",n);
for(i=0;i<n;i++)
{
printf("data%d=",i+1);
scanf("%d",&d[i]);
}
for(sum=0.0,i=0;i<n;i++)
{
sum+=d[i];
}
m=sum/n;
for(sum=0.0,i=0;i<n;i++)
{
sum+=(d[i]-m)*(d[i]-m);
}
v=sum/n;
s=sqrt(v);
printf("平均=%10.3f\n",m);
printf("分散=%10.3f\n",v);
printf("標準偏差=%10.3f\n",s);
return 0;
}
コピペしたので、そのままです。nの前\は円マークです。
エラーメッセージは
.cpp(16): warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files\microsoft visual studio 10.0\vc\include\stdio.h(304) : 'scanf' の宣言を確認してください。
とでました。
No.1
- 回答日時:
貼り付けられているソースをVS2008のVC++でコンパイルすると、コンパイルは通りましたね。
なので、ここにあるソースは、問題ないようですね。
原因は
>>printf("データを%d個入力してください\n",n);
の"\"がうまくユニコードに変換されないため、
>>・(11): warning C4566: ユニバーサル文字名 '\u00A5' によって表示されている文字は、現在のコード ページ (932) で表示できません
のエラーになったように思えます。
とりあえず、漢字メッセージを漢字以外のアルファベット表示に変えてみるとコンパイルエラーは無くなると思います。
なかなかユニコード変換が絡むと、よくわからないエラー状況になりますね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
「指定したフォルダにあるファ...
-
LINKエラーについて
-
適切な変換関数が存在しない???
-
キーの自動入力
-
c言語をgcc.exeにコンパイルし...
-
Excelのエラーで困ってます。
-
”wchar_t*型は渡せない”という...
-
ACCESSのDate関数のエラー表示...
-
Handlesについて
-
VBScriptのエラーの見つけ方及...
-
デバッグ中のエラーのことで教...
-
HEWを使用しているのですが、こ...
-
fortranでプログラムを実行する...
-
CBuilder ver6使用時にエラー
-
SetLayeredWindowAttributes
-
インラインの関数について
-
IOCTL_CDROM_RAW_RAEDで生デー...
-
レコードセットをcloseする所で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
Excelのエラーで困ってます。
-
fortranでプログラムを実行する...
-
バッチからsqlplusの接続エラー...
-
適切な変換関数が存在しない???
-
VB2008で定数に色の設定をした...
-
HEWを使用しているのですが、こ...
-
sys/time.hのインクルードがで...
-
BC30002: 型 'ListItem' が定義...
-
Handlesについて
-
Visual Studioのstrcpy_sについて
-
RightとLeft関数のライブ...
-
error C3867 関数呼び出しには...
-
デバッグ中のエラーのことで教...
-
コンパイルできません。
-
multiple definitionというエラー
-
ビルド失敗 指定されたファイ...
-
レコードセットをcloseする所で...
-
左側がクラス、構造体、共用体...
おすすめ情報