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

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

新規登録して質問してみよう
ただいま回答率
85.37%
C++

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

Q&A

解決済

2回答

860閲覧

c++/forループで特定のループ数で値を取り出したい

yutapon

総合スコア5

C++

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

0グッド

0クリップ

投稿2020/02/16 19:53

前提・実現したいこと

mallocで動的に確保した構造体の配列に値を入れていって、値を保持して後でファイルに書き出すという事をしたいです。

forループで要素数8個目まではそのままmallocで用意した配列に入れ、9個目の要素は先に入れた要素の1つ目の値と同じ値を格納するといった事をループしたいです。

具体的には

配列の数値0〜27まであった場合には
配列[0] = a
配列[1] = b
配列[2] = c
配列[3] = d
配列[4] = e
配列[5] = f
配列[6] = g
配列[7] = h
配列[8] = 配列[0]と同じ値(この場合a)

配列[9] = i
配列[10] = j
配列[11] = k
配列[12] = l
配列[13] = m
配列[14] = n
配列[15] = o
配列[16] = p
配列[17] = 配列[9]と同じ値(この場合i)

配列[18] = q
配列[19] = r
配列[20] = s
配列[21] = t
配列[22] = u
配列[23] = v
配列[24] = w
配列[25] = x
配列[26] = 配列[18]と同じ値(この場合q)

発生している問題・エラーメッセージ

mallocで動的に値の確保とファイル書き出しは問題無いのです。
問題なのは、forループした時の9個目の要素をどう判定するべきなのかが分からないです。

試したこと

forでループしている最中に
if(ループ数 % 9 == 0)

で9の倍数の時に9個目の要素に1個目の要素を入れようとしましたが、配列は0から始まるので9の倍数で判定出来ませんでした…。

補足情報(FW/ツールのバージョンなど)

vc2019を使用しています。

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

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

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

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

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

guest

回答2

0

0始まりで9番目の数は、9で割って8余る数なので、if(ループ数 % 9 == 8)で判断できます。

添え字 ii % 9
1番目[0]0
2番目[1]1
3番目[2]2
中略......
8番目[7]7
9番目[8]8
10番目[9]0
11番目[10]1
中略......
17番目[16]7
18番目[17]8
19番目[18]0
以下略......

C++

1for(int i = 0; i < 27; ++i) { 2 if(i % 9 == 8) { 3 a[i] = a[i-8]; 4 } 5 else { 6 a[i] = 何かの値; 7 } 8}

投稿2020/02/17 00:47

編集2020/02/17 15:42
Bearded-Ockham

総合スコア430

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

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

yutapon

2020/02/17 14:25

9番目の数は配列[9]の事でしょうか? それとも配列[8]の事でしょうか? それを9で割ると8余り…になるという事でしょうか? 何か私が認識間違いしていますかね?
yutapon

2020/02/18 22:46

なるほど!図のおかげで理解出来ました! ありがとうございます。
guest

0

ベストアンサー

if( (ループ数 + 1) % 9 == 0 )
ではどうでしょう。

投稿2020/02/16 20:01

thkana

総合スコア7703

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

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

yutapon

2020/02/17 14:14

返信遅くなりました。 ありがとうございます! おかげでやりたい動作になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問