• 締切済み

C言語について教えてください。

二次元配列でまとめられた「配列で実現する文字列」の文字と文字列を表示する関数を定義し、その関数の機能を確認するプログラムを作成する。 ただし、以下の例のように文字列の個数が変更されても処理できる関数を作成する。 また、文字列の文字の個数は最大9とする(一次元配列の要素数は10とする) さらに、関数printf()をできるだけ用いない。 (1)二次元配列でまとめられたすべての文字列を「一度に」表示する関数を定義する (2)二次元配列でまとめられたすべての文字列の文字を「一度に」表示する関数を定義する。このとき、前回の課題で定義した「すべての文字を表示する関数print_all_char()」を新しく定義する関数から呼び出して用いる。 (3)二次元配列に各文字列を格納してまとめるとき、初期化ではなく、配列の宣言・定義の後で、関数strcpy()を用いること(例では、初期化によりまとめている) [例] char astr[][10] = { "ABCD", "EFGHIJ", }; [実行結果の例] すべての文字列の表示 ABCD EFGHIJ すべての文字列の文字の表示 A B C D E F G H I J [ヒント] (1)二次元配列でまとめられた文字列の文字あるいは文字列を表示する関数<返却値型><関数名>(二次元配列の受け渡しに対応した仮引数の宣言、文字列の数) (2)文字列の数を求める。二次元配列のすべての要素に文字列が格納されている場合、文字列の数=二次元配列の要素数(一次元配列の数) =sizeof(astr)/sizeof(astr[0]) ただし、sizeof演算子の生成する型はsize_t型である。 この問題について教えてください。問題丸投げだとは分かっていますがどうしても分かりません。教えてください。ちなみに前回の課題の定義は下の通りです。 void print_all_char(char *chs) { while(*chs!='\0') { printf("%c\n",*chs); chs++; } } よろしくお願いします。

みんなの回答

  • aris-wiz
  • ベストアンサー率38% (96/252)
回答No.2

>問題丸投げだとは分かっていますがどうしても >よろしくお願いします。 何をよろしくお願いしているのかは分かりませんが、 ご質問はなんでしょうか? 丸投げと分かっているけどっていうのは、 ただの自分勝手な規約違反です。 自分が何が理解できないのか、 ここまでやったがわからなかったというところまで、 せめて書いてください。 前回もヒントが理解できていないようですので、 例えば、ヒントに何が書いてあるのかを質問するとか。 いまのあなたの姿勢はどうみても、「自分でやろう」という 意思がまったく感じられません。 本題: 答えは自分で考えてもらいたいので、ヒントの補足だけです。 (1) 二次元配列でまとめられた文字列の文字あるいは文字列を表示する関数 <返却値型><関数名>(二次元配列の受け渡しに対応した仮引数の宣言、文字列の数) 要約すると、文字列を表示する関数の宣言を表しています。  void   print_astr ( char astr[][10], size_t cnt ) 戻り値型 関数名   (二次元配列の仮引数, 文字列の数 ) size_t cntとしたのは、(2)できちんと補足されています。 (2) 文字列の数を求める。二次元配列のすべての要素に文字列が 格納されている場合、文字列の数=二次元配列の 要素数(一次元配列の数)=sizeof(astr)/sizeof(astr[0]) ただし、sizeof演算子の生成する型はsize_t型である。 (2)は(1)で定義する関数を呼び出す際の、 第2引数に与える数値の取得方法についてのヒントです。 このヒントにより、作った関数の呼び出し方法は、 print_astr( astr, sizeof(astr)/sizeof(astr[0]) ); というようになるということです。

  • arain
  • ベストアンサー率27% (292/1049)
回答No.1

http://okwave.jp/qa4666924.html の回答者ということは同じ。 >ヒントの内容は理解できていますか? >問題丸投げだとは分かっていますがどうしても分かりません。 前にも書いたけど、 ・どこがどう分からないのか ・どこまで分かっているのか くらいは書けない? 何かソースの一部だけは書かれているけど、それの呼び出し元からの利用方法(引数の渡し方)は? これって、学校の宿題か何かでしょ? だったら先生に聞くべきことじゃないの? プログラムだけじゃないけど、自分で「学ぼう」って意欲を出せないようではいつまでたっても理解できないどころか、 やる内容がどんどん難しくなっていって追いつけなくなり、さらに悪循環にはまるだけだよ。 実際そういう経験したことあるから。 一つだけ、アドバイス。 「自分の頭の中だけ」で「理解したつもり」では意味がない。 どんな短いソースでも、「この部分は○○という処理を行っている」という風にコメントは書いた方がいい。 そうすると、他の人にも認識があっているかどうか、わかりやすくなるから。

参考URL:
http://mlab.dyndns.org/okgoo/okgoo.php?id=cutebut

関連するQ&A