• ベストアンサー

-1を使う???

ponntaの回答

  • ponnta
  • ベストアンサー率17% (31/179)
回答No.2

while と if を使う問題ということですが、 if は条件の判断に使うので必然的に必要となりますね。 while を使うというのは繰り返し処理の記述に for は使わずに while を使いなさい、(つまり、while文の使い方の練習をしなさい)って事なんじゃないかな? 繰り返しは for文 でも while文でも同じ事ができてしまいます。 多分、すでに for文を使う課題はやっていて、 つい for文で書いてしまいがちなので、 あえて while文を使ってそちらの使い方も覚えましょう という意味で while文を使うように指定しているんだと おもいます。 (1)について 先ほどの科目数を入れるというのは忘れてください。 一人の人間が複数の科目をうけたときに全科目の合計と 平均を出力すると読み取りました。 よって3科目受けたときは 1科目めの点数、 2科目めの点数、 3科目めの点数、 -1 10科目受けたら 1科目めの点数 : 10科目めの点数 -1 とすると何科目で対応できたことになりす。 -1がいつ入力されるかわからないので matsumaiさんは forで無限ループを作って break で抜けるように作ったんだと思うんですが、 このループを for文ではなく while文で書けば よいのではないでしょうか?

関連するQ&A

  • どこが間違っているのか教えてください。。

    C言語の勉強をしています。 プログラムを作成してみましたが、うまくいきません。 どこが間違っているのか、なぜそうなるのか、教えていただけると助かります。 よろしくお願いします。 あるクラスの試験の点数を整数で繰り返し入力し、点数の合計と平均点を出力するプログラムを作成しなさい。 点数は、0点以上100点以下とし、この範囲外の点(0点未満または100点より大きい点)が入力されたときは、入力を終了し、点数の合計と平均点を出力する(最後に入力された範囲外の点は集計の対象としない)。 また、平均は小数点以下2桁まで出力する。 繰り返しの命令は、何を使ってもよい。 ▼実行例 点数:10 点数:100 点数:20 点数:35 点数:120 合計:165点 平均: 41.25点 ******************************************* 考えたプログラム #include<stdio.h> int main(void) { int   ten,hito,goukei; double           heikin; goukei=0; hito=0; while(1){ printf("¥n点数:"); scanf ("%d", &ten); if(ten<0||100<ten) break; goukei=goukei+ten; hito=hito+1; break; } printf("¥n合計:%d点",goukei); heikin=(double)goukei/(double)hito; printf("¥n平均:%.2lf点",heikin); }

  • 配列の使い方分かりません

    //整数型の配列を10個準備する。 //ループ文を用いてキーボードから値を10個入力する。(for文を用いる) //入力した値を出力する。 //ループ文を用いて入力値の合計と平均値を求める。(while文を用いる) 以上の課題が出されました。 配列の使い方が分からないので上手くできません。 説明付だとうれしいです。よろしくお願いします。

  • 「緊急」期末テストまで1週間ありません・・・・

    平均点数49.8点です。5教科の合計点数249点なんですけど    次の期末テストまで1ヶ月がありません。なので効率が良い勉強方法を教えてください   本当にwwwwwwwwwwwww

  • c言語で平均をだす

    #include<stdio.h> int main(void) { int num; int sum; printf("テストの点数を入力してください。\n"); do{ scanf("%d",&num); sum+=num; }while(num); printf("テストの合計点は%dです\n",sum); return 0; } テストの平均点をだすプログラムを作りたいのですが、合計を出すまではわかったのですが、ここから、平均を出すようにするにはどうすればよいですか。

  • C言語 ループの問題

    キーボードから入力される整数を読み込み、その中で10以上の数の個数を数えてその都度出力し、0が入力されたら止まるようなプログラムをwhile文を使って作成するとき、if文をどのようにつかうかがわかりません。

  • C言語のプログラムについて

    ファイル"data\d.dat"にはテストの各問の点数が以下のフォーマットで記録されている。     学生番号  問1の点数  問2の点数  問3の点数  問4の点数  問5の点数 これを入力し、学生ごとの合計点と、間ごと合計点を求めて表示する(整列前)。次に、間の合計点の 降順に左から右に向かって整列し、さらに、学生の合計点で降順に整列して表示する(整列後)。 <実行例> 整列前 番号  問1  問2  問3  問4  問5  合計 1001  20   30   40   41   90   230 1002  50   30   24    0   95   199 1003  20   33   55   35   90   233 1004  93   55   56   61   90   355 1005  20   50   51   44   90   255 合計 203  198   236   181  455 整列後 番号  問5  問3  問1  問2  問4  合計 1004  90   56   93   55   61   355 1005  90   51   20   50   44   255 1003  90   55   20   33   35   233 1001  90   49   20   30   41   230 1002  95   25   50   30    0   199 合計 455   236  203  198   181 このプログラムを作成したいのですが fscanfでdata-d.datを読み込み横に合計を表示させるのはわかりました。 しかし、縦の合計もだし、その結果から整列して表示させることができずに 困っています。分かるかた教えてください><

  • <未解決>Excel(エクセル)でテストの結果をマクロで個人票にしたいんですが…

    エクセルのマクロを使って、下記のように個人票を作りたいです。いろいろ参考になりそうな同類の質問もあるのですが、私は初心者で、自分のして欲しいものと微妙に違うので書き換えられないので質問しました。詳細を書きます。分かりやすいように学校のテスト風に書きます。 <元の物> │1学期中間テスト│ │氏名│国語│英語│数学│日史│・・・│合計│平均│国順│英順│数順│日順│・・・│総合│ │人A│70│80│90│85│・・・│800 │88.9│3  │5  │ 2 │ 3│・・・│1 │ │人B│60│70│80│75│・・・│790 │87.9│5 │7  │ 4 │ 4│・・・│2 │ │・ │・ │・ │平均│55│60│70│64│・・・│515│578.2│ <マクロ使用後> │1学期中間テスト│空白セル×2│人A│ │  │国語│英語│数学│日史│・・・│合計│平均│ │点数│70│80│90│85│・・・│800 │88.9│ │順位│3  │5  │ 2 │ 3│・・・│1 │ │平均│55│60│70│64│・・・│515 │57.2│ │ │1学期中間テスト│空白セル×2│人B│ │  │国語│英語│数学│日史│・・・│合計│平均│ │点数│60│70│80│75│・・・│790 │87.9│ │順位│5 │7  │ 4 │ 4│・・・│2 │ │平均│55│60│70│64│・・・│515│578.2│ ━以上━ (1)テスト名、科目名、人名等は毎回変わるのでそれに対応できるように。 (2)また、科目数、人数も変わるのでそれにも対応できるように。 (3)最初に、│テスト名│を入れ、2つ空白セルを作り、│名前│を入れる。 (4)次の行にセルを1つあけて、順に科目名、合計、平均 (5)次に「点数」といれて、その後に各人の点数 (6)次に「順位」といれて、その後に各人の順位 (7)最後に「平均」といれて、科目ごとの全体の平均 (8)人と人の間に空白の行1行 それぞれの合計、平均、科目ごとと総合の順位と科目ごとの平均はすでに算出されているものとしてつくっていただければ結構ですが、もしできれば、それも作ってくれるマクロだとなおさら嬉しいです。ちなみに│ │と「 」の違いは、前のセルを引用してくるか、その文字を新しく挿入するかの違いです。技術的に可能か不可能かも私にはわからないので、もし不可能ならばそのように教えてください。 お忙しいとは思いますが、よろしくお願いします。

  • 中学生の定期テスト 順位(平均点)出してくれますか?

    今年から息子が公立中学に通っています。(私は30代後半) 先日期末テストがありました。(未だ3学期制です) 私が中学生の時は定期テストのあとは必ず教科ごとに平均点がでたり 合計点数の順位などが出されていましたが 息子の中学では順位どころか平均点すらだしません。 もっとすごいのはテストの点数も出していない教科もあります。 (自分で横に書かれている数字を計算して点数をだす) 数学は74点満点、保健体育は38点満点など期末テストで100点満点は確か理科のみでした。 私の頃は先生の問題数の間違いで98点満点などになることもごく稀にはありましたがほとんど100点満点でした。 そこで質問です。 あなたの(お子さんの)中学では定期テストの平均点、順位はだしていますか? ※どちらが良いかではなく現状を教えていただきたいです。

  • エクセルにとても困っています。どなたか助けてください!

    皆さまこんにちは。 いつも勉強させて頂いております。 どうにも困った事態に陥りまして、初投稿に至りました。 類似質問も一通り拝見させて頂いたのですが、 近いものが見つかりませんでしたので、質問させて頂きます。内容は以下の通りです。         A       B  1    2006年度1学期  2006年度2学期・・   2    国語(プルダウン)  3 テストあ   ◎  4 テストい   ○       5 テストう    ・  50 合計点数 60点  51 判定評価 ok ★A2はプルダウンリストになっており、  そこから教科を選択します。 ★A50のセルの「合計点数」は、  ◎=2点、○=1点として集計しています。 ★A51のセルの「判定評価」は、  「合計点数」が別枠で設けた「目安点数」より上回 っていたら「OK」下回っていたら「NG」とし ています。 最終的には、 プルダウンリストより教科を選択      ↓ その教科の「合計点数」を計算      ↓ その教科の「判定評価」を表示 ↑この処理がしたいのです…。 関数のみでこの様な処理は可能でしょうか? 最近までは教科が1科目のみであった為、IF関数を使用しておりましたが、最近テスト項目・教科共に増えることになり、IF関数ではネスト制限にかかり、まかないきれなくなりました。 これまでのご回答を拝見させて頂き、 VLOOKUP関数を使用した方が良い、という所までは理解出来たのですが、 自分の知識力・理解不足により先に進む事が出来ません。上司にも急かされておりまして、当方大変困っております…。 以上、皆さま年度末でご多忙のところ申し訳ありませんが、どうかご教授頂けませんでしょうか? 未熟者にご経験豊かな皆さまのお知恵をお貸し下さいませ。よろしくお願いいたします。

  • 高校受験前の勉強時間について

     高校受験間近の勉強法と勉強時間を教えてください。  前回のテストでは平均点が239点のテストで私の点数は174点でした。前々回のテストのと比べて、平均点と自分の点数の差が30点ほどだったので、今回はかなり下がってしまいました。  志望校の合格点数は、倍率にもよりますが、だいたい160点〜で、200点あれば安牌と先生から伝えられました。  できたらあと、30点ほど上げたいです。どのような勉強をするべきでしょうか?   ↓今回のテストの点数です。 国語 57点  平均 65点 (古文、漢文のみ勉強をしました。) 数学 37点 平均 45点 (問1、2のみ勉強しました。) 社会 39点 平均 47点 (ワークを合計5〜6周ほどしています。) 理解 20点 平均 37点 (いつも平均点を超えているのですが、勉強をあまりしていなかったのと、苦手な記述問題が多く出題されたので下がりました。) 英語 21点 平均 45点 (基礎からできていません。)