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

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

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

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

for

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

Q&A

解決済

2回答

1498閲覧

for文で配列の値を表示するプログラムについて教えてください

tomo2n

総合スコア19

C

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

for

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

0グッド

1クリップ

投稿2017/07/25 01:25

編集2017/07/26 06:28

ある画像を縦7[pixel],横64[pixel]で配列f[7][64]で画像を区切り,区切ったときのそれぞれの値を配列に保持したいです.ここで二次元配列を一次元配列に変換します.
f[7][64]-->f'[663+63]?と変換できると思います.
このf'の添え字がpositionと一致します.
for(int i=0;i<7;i++){
for(int j=0;j<64;j++){
for(int k=0;k<64;k++){
posision=i
j+k;
printf("value of pixel = %d\n",f'[position]);
}
}printf("\n");
}

上にfor(int k=....)というものを加えましたが,これが正解かどうかはわかりません.思いついたのでやってみました.
これで画像を配列に格納できますか.の

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

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

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

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

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

ozwk

2017/07/25 05:52 編集

"リアルタイム値"とは? 7*64回ループ回してるが、この数字は何か? 1行あたり5個の数値を出したいのはわかるが、何を表示したいのかがわからない。 何の説明もなく出て来る配列g[]の中身は? "下向きに進むのは別に関数があるため考慮しないとする"->そもそも下向きに進むって何?
WoodenHamlet

2017/07/26 05:31

これだけの情報で答えがわかるのはカンニングした人だけです。つまりあなたの先生はカンニングする人間かどうかを試しているわけです(というくらい意味不明な質問です)
tomo2n

2017/07/26 05:40

これは趣味で始めたことなので,カンニングという概念がありません.この質問は自分でしたものなのですが,あと少しで答えが出るという状態ではなく,どのように質問していいかもわからない状態でした.なので質問内容を整理できるようにもう一度考えます.この場を乱してすみませんでした.
tomo2n

2017/07/26 05:42

私のわけのわからない質問を解決しようとして頂きありがとうございます.
WoodenHamlet

2017/07/26 05:43

ならとりあえずprintfの書式を調べてみるのがいいのではないかしらん。positionの計算についてもi*j+32ではなくi*(j+64)とかそんな感じの式になるんじゃないかとか思ったり
tomo2n

2017/07/26 05:59

そのpositionの計算についてなのですが,縦7ピクセル,横64ピクセルの画像を二次元配列で取得した時,f[7][64]という配列に置き換えれると思います.これを一次元配列に変換するとf'[7*64+?]という形になると思います.この一次元配列においての+?の意味は配列7行64列のどこの地点にいるかという意味であります.
tomo2n

2017/07/26 06:02

?には0から63までの数字が入ります.
guest

回答2

0

ベストアンサー

イメージ説明

こういうことなんじゃないかと思って

C

1 position = (i*64)+j;

なんじゃないの?と思ったんだけど(どっちが縦列とかは置いといて、考え方としてね)

投稿2017/07/26 06:15

WoodenHamlet

総合スコア306

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

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

tomo2n

2017/07/26 06:29

そうです!そういうことです.
WoodenHamlet

2017/07/26 06:39 編集

f'[6*63+63]、なぜややこしくするのか[7*64]でいいじゃんよ。 f[7][64]には見てわかるように 7 * 64 = 448 要素。6*63 + 63 = 441 では足りないね。 それから私の書いた (i*64) + j、この64は固定値だからね?エクセルみたらわかるけど、i が1増えるごとにその上の行に存在した要素数64が積みあがってるの。だからここは固定で64。 別の言い方で言うと(i*64)は幅64長方形の面積を求めていて(高さ:i は0スタートなことに注意)、+j で残りの部分を足し合わせてるの。OK?
tomo2n

2017/07/26 06:50

理解しました.
guest

0

配列の構成要素がわからないので回答できないです。

が、

とりあえず、g[position] とあるので、g[position]+1、g[position]+2とか、そんな感じですかね。
配列の中身を設定すればよいのじゃないでしょうか。

投稿2017/07/25 05:17

momon-ga

総合スコア4820

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

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

WoodenHamlet

2017/07/26 05:38

g[position]+1じゃプリントする情報として無意味なやうな… せめてg[position+1]か。positionの計算もしてるからどうだろ、違う気もするけど。 まあまじめに考えたい類の質問じゃないんだけど
momon-ga

2017/07/26 07:26 編集

普通に誤字でした・・・ 意図としては、指摘通り、g[position+1]と書いたつもりでしたが、気づかなった。 修正しよかと思いましたが、もう質問に痕跡がない
WoodenHamlet

2017/07/26 07:29

なんかまったく別の質問にめたもるほーしすしてますからねw
momon-ga

2017/07/26 07:34

質問者さんの頭にある質問したいことと書いてある質問の内容がまだまだ差がありそうで、超能力がないと回答できそうにないですねぇ。
WoodenHamlet

2017/07/26 07:39

その辺は追記依頼と私の回答欄でできるとこまで付き合ったけど、どうだろう。もっと基礎的な部分から質問者さんは勉強した方がいいような気もする。 プログラミングという建築術の前に設計図の書き方を勉強した方が良い的な…
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問