Cの質問~~助けて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ping5158
記事: 2
登録日時: 10年前

Cの質問~~助けて

#1

投稿記事 by ping5158 » 10年前

ある問題集からこんな問題が見つけた

以下の手順に従って実行し、実行例のように表示するプログラムを作成せよ。
1. 人数を#define で定義する。(ここでは、マクロ名をNUM、数値を10と定義する)
2. data_0.txt から、番号、身長(cm)と体重(kg)を読み込む。番号は整数型の1 次元配列
number[NUM]に、身長と体重は実数型の2 次元配列data[NUM][2]に代入する。すべてのデ
ータを読み込み終えたら、ファイルを閉じる。
3. 各人のBMI(肥満度)を計算し、その結果を別の実数型の1 次元配列bmi[NUM]に代入する。
BMI の計算式:
BMI = 体重(kg)/身長(m)/身長(m) ※単位に注意
4. 全員分の計算が終了後、番号、身長、体重、BMI を実行例のように画面表示する。
5. BMI が25 以上の人の番号を実行例のように画面表示する。


[ 実行例 ]
番号 身長 体重 BMI
0001 175.80 82.30 26.63
0002 160.30 57.50 22.38
0003 188.80 85.00 23.85
0004 155.50 59.00 24.40
0005 165.30 58.50 21.41
0006 166.60 60.00 21.62
0007 173.10 76.00 25.36
0008 177.70 80.00 25.33
0009 155.70 48.50 20.01
0010 169.30 77.60 27.07
BMI が25 以上の人は, 0001, 0007, 0008, 0010,


data_0は

1,175.8,82.3
2,160.3,57.5
3,188.8,85.0
4,155.5,59.0
5,165.3,58.5
6,166.6,60.0
7,173.1,76.0
8,177.7,80.0
9,155.7,48.5
10,169.3,77.6

このプログラミングを作りたいですけど、全然わからんので、助けて~~~~

アバター
usao
記事: 1892
登録日時: 12年前
連絡を取る:

Re: Cの質問~~助けて

#2

投稿記事 by usao » 10年前

オフトピック
ここまで事細やかにやるべきことが列挙されているのですから
とりあえずできる項目からコード化していけば良いのでは?

全ての項目について
>全然わからん
というお手上げ状態なのであれば,
単にまだこの問題に挑戦できる時期ではない(習得過程的な意味で)ということでしょうから
たまたま見つけただけの問題に無理して執着せずとも
先にCの学習を進めるなり,その問題集の中でもっと簡単な問題から取り組んでいくなりすれば良いのではないでしょうか.

ping5158
記事: 2
登録日時: 10年前

Re: Cの質問~~助けて

#3

投稿記事 by ping5158 » 10年前

コード:


 int main() {
int i;

FILE* fp=fopen("data_0.txt","r");
if(fp==NULL)return 0;
printf("番号  身長(cm) 体重(kg)\n");
for(i=0; i<N; i++)

 
ここまでできましたですけど、そのあとはどうしますか?

アバター
usao
記事: 1892
登録日時: 12年前
連絡を取る:

Re: Cの質問~~助けて

#4

投稿記事 by usao » 10年前

>ここまでできました

とのことですが,断片すぎて,大丈夫な箇所とそうでない箇所との区別ができません.
少なくとも C言語としての体裁くらいは整えましょうよ というか,
「ここが埋まれば動くんだけど」的な穴埋め問題的状態にまで仕上げることはできませんか?

例えば,
「{5,2,40}という3つの値の平均値を求めなさい」という問題があったとして,
平均値を求める部分がわからないのだとしても

コード:

#include <stdio.h>

int main()
{
  int Vals[3] = { 5, 2, 40 };  //3つの値
  float Average;  //この変数に平均値の計算結果を入れたい

  //※ここで平均値を計算したいけど,書き方がわからない
  // Average = ???;

  //結果表示
  printf( "Average = %f\n", Average );

  return 0;
}
みたいな,わからない部分( Average = ???; )さえ解決すれば後は大丈夫 という状態,というか.

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 15年前
住所: 北海道札幌市
連絡を取る:

Re: Cの質問~~助けて

#5

投稿記事 by Dixq (管理人) » 10年前

usaoさんが仰る感じで少しずつやっていきましょう。

ファイルからデータを取ってくる所が鬼門かと思いますが、
printfがフォーマット指定した出力であるのに対して
fprintf
https://www.google.co.jp/webhp?sourceid ... 8#q=fscanf
がフォーマット指定した入力です。
これによってファイルからデータを取って来てみましょう。

いっぺんにやるのが難しければ、ファイルに

1
2
3
4
5
6

のように書いて、それを
int dat[6];
に格納するようなプログラムから始めてみて下さい。

閉鎖

“C言語何でも質問掲示板” へ戻る