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

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

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

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

多次元配列

1次元配列内にさらに配列を格納している配列を、多次元配列と呼びます。

Q&A

3回答

1131閲覧

データが0のときxを,1のときoを表示して 実行例のように出力するプログラムを作成してほしいです。

km19625ers

総合スコア0

C

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

多次元配列

1次元配列内にさらに配列を格納している配列を、多次元配列と呼びます。

0グッド

0クリップ

投稿2021/11/28 05:29

下に示すように配列を初期化したとき,そのデータが0のときxを,1のときoを表示して 実行例のように出力するプログラムを作成。

int data[][7] = {
{0,0,1,1,1,0,0},
{0,0,1,0,1,0,0},
{0,0,0,1,1,0,0},
{0,0,0,1,0,1,0},
{0,1,0,0,1,0,0},
{0,0,1,1,0,0,0},
{0,0,1,0,1,0,0},
{0,1,0,0,0,1,0} };

実行例
xxoooxx
xxoxoxx
xxxooxx
xxxoxox
xoxxoxx
xxooxxx
xxoxoxx
xoxxxox

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

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

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

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

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

episteme

2021/11/28 05:31

そのデータが0のとき0を,1のとき1を表示するのなら書けますか?
jimbe

2021/11/28 05:47

teratail は依頼する場所ではありません。 依頼サイトに行ってみては如何でしょうか。
KojiDoi

2021/11/28 08:08

[推奨していない質問|teratail(テラテイル)](https://teratail.com/help/avoid-asking) > ## コードをください・デバッグしてください等の丸投げの質問 > 何かを作りたいのでコードを書いてほしい、学校の課題を解いてほしい等の質問は、具体的にプログラミングで困っている質問ではないと考え、推奨していません。
guest

回答3

0

for(int i=0,k=64,*p=*data;k--;putchar((++i>>3?i=0,2:*p++)["xo\n"]));

投稿2021/11/29 00:20

kazuma-s

総合スコア8224

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

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

0

課題のようなので、ヒントまで。〇×の代わりに配管工を描いてみました。
配列の縦横をループさせて配列の値の応じて文字を出力すれば絵が出ます。

c

1#include <stdio.h> 2 3int data[][18] = { 4 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 5 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,0}, 6 {0,0,0,0,0,0,0,1,1,1,1,1,0,0,3,3,3,0}, 7 {0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,3,3,0}, 8 {0,0,0,0,0,0,2,2,2,3,3,2,3,0,2,2,2,0}, 9 {0,0,0,0,0,2,3,2,3,3,3,2,3,3,2,2,2,0}, 10 {0,0,0,0,0,2,3,2,2,3,3,3,2,3,3,3,2,0}, 11 {0,0,0,0,0,2,2,3,3,3,2,2,2,2,2,2,0,0}, 12 {0,0,0,0,0,0,0,3,3,3,3,3,3,3,2,0,0,0}, 13 {0,0,0,2,2,2,2,2,1,2,2,2,1,2,0,0,0,0}, 14 {0,0,2,2,2,2,2,2,2,1,2,2,2,1,0,0,2,0}, 15 {0,3,3,2,2,2,2,2,2,1,1,1,1,1,0,0,2,0}, 16 {0,3,3,3,0,1,1,2,1,1,3,1,1,3,1,2,2,0}, 17 {0,0,3,0,2,1,1,1,1,1,1,1,1,1,1,2,2,0}, 18 {0,0,0,2,2,2,1,1,1,1,1,1,1,1,1,2,2,0}, 19 {0,0,2,2,2,1,1,1,1,1,1,1,1,0,0,0,0,0}, 20 {0,0,2,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0}, 21 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} 22}; 23 24typedef struct { 25 int code; 26 char color[3]; 27} COLOR_MAP; 28 29COLOR_MAP map[] = { 30 {0, " "}, 31 {1, "〓"}, 32 {2, "■"}, 33 {3, "□"} 34}; 35 36char* getColor(int code) 37{ 38 int i; 39 for (i = 0; i < sizeof(map)/sizeof(map[0]); i++) { 40 if (map[i].code == code ) { 41 return map[i].color; 42 } 43 } 44 return NULL; 45} 46 47int main(int argc, char* argv[]) { 48 int x; 49 int y; 50 int x_max; 51 int y_max; 52 53 x_max = sizeof(data[0])/sizeof(data[0][0]); 54 y_max = sizeof(data)/sizeof(data[0]); 55 56 for (y = 0; y < y_max; y++) { 57 for (x = 0; x < x_max; x++) { 58 printf("%s", getColor(data[y][x])); 59 } 60 printf("\n"); 61 } 62 return 0; 63}

■ 実行結果
実行結果

投稿2021/11/28 10:17

cx20

総合スコア4633

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

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

0

if文を使ってその数値が0のときはxの文字を出力するようにしよう

投稿2021/11/28 07:27

y_waiwai

総合スコア87774

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問