最近C言語の学習を独学で始めたのですが、参考書にてわからない点があるので、質問させてください。猫でもわかるC言語を参考書に学習を進めているのですがP246問1、要約すると5人の氏名、国語、理科の点数を格納する構造体を作り氏名の一部を入力すると点数を表示するプログラムを作れとのことなのですが、最後に何故for文を使う必要があるのか理解できません。最後にfor文を入れないと正しい点数が入力されないのはなぜでしょうか?詳しい方、ご教授をよろしくお願い致します。*ソースコードはテキストについている模範解答になります。最後のfor文とはif(strstrの一行上のfor分になります。なんの疑問点もなく正常ですよ。疑問点を直に書き入れてください。この文面は理解不可能ですよ。問題を読んでいないのでもしかしたら「for文を使う」という指定があるのかもしれないですが、そうでなければ別にfor文を使う必要は無いですね。}}と等価なので、代わりにwhile文を使えばいいからです。1年前これは、入力された複数のデータから、目的のデータを検索する、というプログラムの演習でしょ。万人分、処理しなきゃならないわけですよ。万人分だとハッシュ使いますかね。線形検索やハッシュ以外にも、二分木とか、あるわけですよ。使うと、アルゴリズム(「線形検索」や「ハッシュ」、「二分木」のこと)が簡単に切り替えられるんです。プログラミング道は、険(けわ)しいです。線形検索が、人間にとって、一番わかりやすいからです。やることになりますので、大雑把(おおざっぱ)でもいいですから、頭の隅に入れておいてください。http://ameblo.jp/mratassyu/手提鞄屋魚有店(てさげかばんやうおありてん)レスがついていないものを優先して、レスしています。時々、見当外れなレスをします。/*この部分のforが何に使われているかわかりません。1年前3人ともご丁寧にお答え頂きありがとうございます。ソース文にコメントを載せたほうがわかりやすいですよね。これは模範解答になりますのでfor文を使いなさいと言ったような指示はありません。私自身が模範解答を見てわからないところを質問しているしだいです。/*この部分のforが何に使われているかわかりません。2点あり1点にしか答えてないうえ全て間違っています。>何故for文を使う必要があるのか理解できません。演算と間違えても正常動作するようにC言語を作ってあるのですが本当は全然違うものです。ついては質問者様にその症状になるソースコードを提示して頂きたくお願い致します。検討することができないので。C言語らしく書くとこうなるとおもいますね。/*この部分のforが何に使われているかわかりません。1年前usaoさん、Mathさんご丁寧な回答ありがとうございます。for文を使わないといけないのかって質問でしたが、名前を探してくる[strstr]の関数を使っているのに、何故、for文で繰り返し処理を実行しなければいけないか、疑問でした。皆さんのおかげで解決に向かいそうです。ご指摘のあった、質問その2ですが下記のソースコードになります。そのまま、上のソースコードからfor文だけを抜いた形になります。予想通りでたらめな「出力」をしているのであって「入力」は関係ありません。の>点数を格納する構造体を作り氏名の一部を入力すると点数を表示するプログラムを作れとのことなのですが、最後に何故for文を使う必要があるのか理解できませんは可笑しいと思ってました(^^;一名の名前を入力してますよね。その人を検索しますよね。C言語らしく書くとこうなるとおもいますね。//-----ポインターを一個進める---------------}そのプログラムで、登録されていない名前を検索すると不正な出力になります。なることはありません。プログラムでは1つしか出てきません。1年前>文字列の【部分一致】で検索するって話でしょそうですよね。文を使わないといけないのかって質問でしたが、名前を探してくる[strstr]の関数を使っているのに、>何故、for文で繰り返し処理を実行しなければいけないか、疑問でした。>ですが皆さんのおかげで解決に向かいそうです。質問者の意図が分かりました。一気に検索することはできません。http://ameblo.jp/mratassyu/手提鞄屋魚有店(てさげかばんやうおありてん)レスがついていないものを優先して、レスしています。時々、見当外れなレスをします。{不等号の向きが、逆ですね。http://ameblo.jp/mratassyu/手提鞄屋魚有店(てさげかばんやうおありてん)レスがついていないものを優先して、レスしています。時々、見当外れなレスをします。1年前そうか#2の*ソースコードはテキストについている模範解答になります。