🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

1回答

476閲覧

scanfとforの関係性(scanfの使い方)

takuowake

総合スコア2

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2021/02/25 02:11

編集2021/02/25 02:15

for文の中にscanfを書くのと、for分の外にscanfを書くことの違いが分かりません。その違いを教えていただければ幸いです。

int main() { int a,b,c,d; scanf("%d%d%d",&a,&b,&c); for(a;a<b+1;a++) { if(c%a==0)d++; } printf("%d\n",d); return 0; }
int main() { int a,b,c,d; for(a;a<b+1;a++) { scanf("%d%d%d",&a,&b,&c); if(c%a==0)d++; } printf("%d\n",d); return 0; }

上記の違いを教えていただけたら幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2021/02/25 02:12

どのようなコードを想定していますか?
takuowake

2021/02/25 02:15

コメントありがとうございます。 質問訂正いたしました。
maisumakun

2021/02/25 02:18

takuowakeさんとしては、どのような考えがありますか?
takuowake

2021/02/25 02:25

for文の中にscanfを記述すると、forのstepにa++という記述がありますがaの変化は、(1-> 2 -> 2 ->....)となって初期値から+1しか変化しないのかなと思いました。 逆に、for文外にscanfを記述すると、aの変化は(1 -> 2 -> 3 -> 4 -> ....)となると思います。 ※a = 1という前提でaの変化を書きました。
fana

2021/02/25 02:32

> int a,b,c,d; とりあえず,これらを真っ当に初期化した状態から話を始めた方が,「不定値がどうの」的な本題ではない(?)話が混じりこまなくて良いのではないかと思います.
guest

回答1

0

ベストアンサー

for文の中にscanfを記述すると、forのstepにa++という記述がありますがaの変化は、(1-> 2 -> 2 ->....)となって初期値から+1しか変化しないのかなと思いました。

そもそも論として、int aで宣言しただけの未初期化変数の値を使ってはいけません。未定義の動作(何が起きても文句は言えない)となります。

投稿2021/02/25 02:27

maisumakun

総合スコア145975

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2021/02/25 02:29

その問題をひとまず置いておくとした場合、ループの中にscanfを書けば、当然ループが1回回るごとに1回入力を求められることになります。
takuowake

2021/02/25 02:39

回答ありがとうございます。理解することができました。 初期値が自動的にインプットされるような問題を解くところからC言語の勉強を始めたので、未定義に対する違和感がありませんでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問