質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.35%
for

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

2回答

961閲覧

for文内のscanf関数

t.dai

総合スコア1

for

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2021/07/05 14:11

編集2021/07/06 10:07

#include〈stdio.h〉

main()
{
int n_data, i;
scanf("%d", n_data); ※キーボードで29と入力
double data[n_data];

for(i=0; i>=n_data-1; i++)
scanf("%lf", &data[i]);

 このようなプログラムで、キーボード入力の値を1行に最大10個出力して改行できるようにしたいのですが、どうすればよいかわかりません。
出力する際もfor文を用いたいと思っています。

ちなみに
1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0
11.0 12.0          …20.0
21.0 22.0         …29.0
という出力結果になるようしたいです。

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

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

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

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

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

guest

回答2

0

ベストアンサー

scanf()は入力するための関数なので、出力をどうするかには関係ありません。特にどうこうするわけじゃなく素直にデータを取り込めばいいのでは。

逆に言えば、10個毎に改行するのはすべて出力の際の工夫ということになります。
・出力個数を数えて10で割り切れる数になったら改行するとか
・とにかく10個出力してしまって(配列の範囲を超えない注意は必要ですが)から改行するとか
いうことになるでしょう。

以下本題以外。

「プログラミング」はプログラムを作る行為のことなので、

このようなプログラミングで

というのはちょっと文章としておかしいです。「このようなプログラムで」でしょうか。「プログラム」の意味で「プログラミング」を使っちゃう人は初心者には多いですけれど。

for(i=0; i>=n_data-1; i++)
for文のカッコ内の;区切りの2番めは、ループを継続する条件です。真の時にループを継続します。これがi>=n_data-1ということは、n_dataが1のときは多分20億回ぐらい(iがオーバーフローするまで)ループして、n_dataが2以上のときは一度もループを実行しないということになります。
for(i=0; i<=n_data-1; i++)とするところを間違えただけでしょうが。ついでに言えば慣習としては
for(i=0; i<n_data; i++)と書くのが普通かと思います。

投稿2021/07/05 23:25

thkana

総合スコア7703

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

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

0

10回に1度改行すればいいんじゃないかと。

投稿2021/07/05 21:02

episteme

総合スコア16612

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問