みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

コンパイル後アプリケーションエラー・・・

#include<stdio.h>

void main(void)
{
int n1, n2, sum;

printf(\"整数n1を入力して下さい:\");
scanf(\"%d\", n1);
printf(\"整数n2を入力して下さい:\");
scanf(\"%d\", n2);

sum = n1 + n2;

printf(\"n1とn2の合計は%dです\\n\", sum);
}
と入力しコンパイルしたらアプリケーションエラーとなりました。何が原因なのでしょうか?
本に書いてあるとおりに入力し、何度も見直したのですが…

あとsum = n1 + n2と書いたのですが、sum=n1+n2でも問題はないのでしょうか?

こんな初歩の初歩のことでスミマセン。
宜しくお願いします。

投稿日時 - 2008-01-21 22:51:17

QNo.3701473

困ってます

質問者が選んだベストアンサー

#include<stdio.h>

void main(void){
int n1,n2,sum;

printf("整数n1を入力して下さい");
scanf("%d", &n1);

printf("整数n2を入力して下さい");
scanf("%d", &n2);

sum = n1 + n2;

printf("n1とn2の合計は%dです", sum);

}

n1+n2でも大丈夫です。この場合、半角空けるか空けないか本人の癖や見易さに起因します。

投稿日時 - 2008-01-22 02:24:07

お礼

最後から2行目の『\n』と、6行目と9行目の行末の『:\』がいらなかったんですね…^^;
redfox63さんもjactaこの事を言ってたんですね…

最初に買った本はリンクが切れてる本だったので、新しく買いなおしてやり始めたら・・・w
これからもこのようなことがあると思いますが、宜しくお願いします^^

投稿日時 - 2008-01-22 11:40:25

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

処理系不明なので具体的なことは分かりませんが、動作が未定義の箇所が多すぎます。

1. mainの返却値がintではない。→未定義の動作
2. printf(\"整数n1を入力して下さい:\");等の行では、行末の(はずの)逆斜線(円記号)の後に空白類文字以外が続いている。→未定義の動作

投稿日時 - 2008-01-22 00:28:09

補足

丁寧な説明ありがとうございます^^
でもまだ初めて間もない自分にはちょっと難しいです^^;

なので一度わかるまで調べてから改めて御礼をさせていただきます。
これからもよろしくおねがいします^^

投稿日時 - 2008-01-22 11:29:36

お礼

いまだによく理解ができていません^^;
申し訳ありません…

でも時間をさいて親切に丁寧に説明していただけて嬉しいです^^
またよろしくお願いします。

投稿日時 - 2008-01-23 11:12:22

ANo.1

scanfのデータを受け取る変数は &演算子が必要ですよ

また書式設定する文字列の開始終了を表す『"』に対してエスケープ『\』は必要ありません

scanf( "%d", &n1 );

printf( "n1とn2の合計は%dです\n, sum );
といった具合です ・・・

投稿日時 - 2008-01-21 23:35:22

お礼

丁寧にありがとうございます^^
本の通りにしたのに、できないということはあまり良くないのを買ってしまったということでしょうか…

これからもやっていくうちでこのような事があると思います。
これからも宜しくお願いします^^;

投稿日時 - 2008-01-22 11:28:21