C言語初心者です。
以下課題に躓いていまして解答コードをご教示いただきたく存じます。
よろしくお願いいたします。
課題内容 次の構造体を typedef を使用して定義せよ。
構造体名 S_Human
データ型 名前 説明
char name[32] 氏名
short age 年齢
double height 身長(cm)
double weight 体重(kg)
次の構造体変数を定義し、指定した値で初期化を行いなさい。
データ型 変数名 初期値
S_Human people[] 下記に従う
■初期値
氏名 年齢 身長 体重
Jack 34 168.5 56.4
George 43 183.6 98.8
Leonardo 30 179.2 68.5
Gabriel 7 120.6 24.7
Henry 18 175.6 63.5
彼らの中から次の条件を満たす人物を抽出し、画面に氏名を表示せよ。複数いた場
合は合致した全ての人を表示せよ。
■抽出対象①
身長が 170cm 以上で体重が 60kg 以上の人
■抽出対象②
年齢が 30 歳未満で身長が 170cm 以上の人
出力期待値 抽出対象①
George
Leonardo
Henry
抽出対象②
Henr
ーーーーーーーーーーーーーーーーーーー
#include <stdio.h>
typedef struct
{
char name[32];
short age;
double height;
double weight;
}S_Human;
S_Human people[] =
{
{jack,34,168.5,56.4}
{George,43,183.6,98.8}
{Leonardo,30,179.2,68.5}
{Gabriel,7,120.6,24.7}
{Henry,18,175.6,63.5}
};
int main(void)
{
return 0;
}
No.1ベストアンサー
- 回答日時:
構造体変数 people の宣言の際に、要素数を指定する必要があります。
また、構造体変数 people の初期化の際、各要素の間にカンマが必要です。さらに、氏名を文字列として扱う場合はダブルクオーテーションで囲む必要があります。これらの修正点を踏まえた、正しい解答例を以下に示します。#include <stdio.h>
typedef struct
{
char name[32];
short age;
double height;
double weight;
} S_Human;
S_Human people[] =
{
{"Jack", 34, 168.5, 56.4},
{"George", 43, 183.6, 98.8},
{"Leonardo", 30, 179.2, 68.5},
{"Gabriel", 7, 120.6, 24.7},
{"Henry", 18, 175.6, 63.5}
};
int main(void)
{
int i;
// 抽出対象①:身長が 170cm 以上で体重が 60kg 以上の人
printf("抽出対象①:\n");
for(i = 0; i < sizeof(people) / sizeof(S_Human); i++)
{
if(people[i].height >= 170.0 && people[i].weight >= 60.0)
{
printf("%s\n", people[i].name);
}
}
// 抽出対象②:年齢が 30 歳未満で身長が 170cm 以上の人
printf("\n抽出対象②:\n");
for(i = 0; i < sizeof(people) / sizeof(S_Human); i++)
{
if(people[i].age < 30 && people[i].height >= 170.0)
{
printf("%s\n", people[i].name);
}
}
return 0;
}
修正点、ご回答いただきありがとうございます。
とても助かりました。
まだまだ勉強中の身なのでまた質問ありました際はよろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- C言語・C++・C# C言語(構造体) 3 2022/07/05 20:08
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# C言語初心者です、、、お助けください 2 2023/03/14 20:08
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- Excel(エクセル) エクセルで対象日に該当するデータがある場合に別表へ全対象者を表示させたい。 3 2023/07/12 09:48
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
C言語初心者 ポインタについて、お助けください、、
C言語・C++・C#
-
C言語初心者です、、、お助けください
C言語・C++・C#
-
C言語初心者 構造体 課題について
C言語・C++・C#
-
-
4
HEWを使用しているのですが、このようなエラーが出ました。
C言語・C++・C#
-
5
*をユーザーが入力した数字の数だけ表示するプログラムの作り方を教えてください
C言語・C++・C#
-
6
C言語の入力した文字を反転させるプログラミングの仕方が分かりません。
Ruby
-
7
プログラミングが分かりません。
C言語・C++・C#
-
8
Run-Time Check Failure #3というエラーが出ます。
C言語・C++・C#
-
9
C言語 構造体でつまずいています
C言語・C++・C#
-
10
構文エラー;"が型の前にありませんとは、どうしたら解決できるのですか。"
C言語・C++・C#
-
11
c言語 構造体
C言語・C++・C#
-
12
C++でLEDを点灯させるプログラム
C言語・C++・C#
-
13
c言語 16進数の2進数への変換
C言語・C++・C#
-
14
c言語のプログラミングについての質問なのですが、 定価と消費税率(%)を引数として税込価格を返すpr
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語を実行すると-infが出てき...
-
至急です! マクロ定義で #defi...
-
プログラムでの数字につく”f”の...
-
C言語の型による処理速度の違い
-
(C言語)ニュートン法のプログ...
-
float?数字の後にLがつくもの
-
int とdoubleの比較
-
C 開放してるのにエラー(doubl...
-
long doubleの表示方法
-
相互相関関数
-
c言語で、繰り返し文の中で、0....
-
listに構造体を格納
-
C言語 関数プロトタイプ宣言の...
-
C# 浮動小数の数値文字列化
-
float型とdouble型の変数の違い...
-
バイナリから実数を取得したい...
-
単精度計算と倍精度計算
-
MQL4での条件文の書き方
-
【C言語】二階微分方程式をル...
-
doubleの変数にintとintの割り...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラムでの数字につく”f”の...
-
c言語で、繰り返し文の中で、0....
-
C言語を実行すると-infが出てき...
-
doubleの変数にintとintの割り...
-
float型とdouble型の変数の違い...
-
C 開放してるのにエラー(doubl...
-
C言語の型による処理速度の違い
-
Cで3乗根を求める方法
-
C言語 関数プロトタイプ宣言の...
-
関数におけるif文とreturn文に...
-
至急です! マクロ定義で #defi...
-
-1.#IND00と出てしまうのですが...
-
2次方程式の解を求めるプログ...
-
2分法で方程式の複数の解を自...
-
doubleは常に%lfとするべきなのか
-
C言語で-23乗を取り扱うには
-
C++で外積
-
int とdoubleの比較
-
C言語のプログラムで#include<m...
-
方程式を2分法を用いて解くプロ...
おすすめ情報