質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

1回答

665閲覧

C言語の課題 リスト構造

ksyiwk

総合スコア24

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2018/12/12 10:33

c言語で最初に入力した人数分の構造体に番号、名前、身⻑、体重を格納し、それらを表示させるプログラムをリスト構造を用いて作成せよ。構造体及び出力部分は以下のようにすること。 と出たのですがどうしてもできないのでどなたか教えてください。
struct Data{
int No;
char Name[20];
double Height;
double Weight;
struct Data *next;
}d[10];//構造体
while(p!=NULL){
printf("No.%d : %s\n
",p->No,p->Name);
printf("%.1f[cm] %.1f[kg]\n",p->Height,p->Weight);
p=p->next;//出力部分
途中経過のソースコードは以下の通りです。
#include<stdio.h>
struct Data{
int No;
char Name[20];
double Height;
double Weight;
struct Data *next;
}d[10];
int main(){
struct Data *p;
int i,a;
p=&d[0];
printf("Please input the number of people:");
scanf("%d",&a);
for(i=0;i<a;i++){
printf("No, %d name : ",i+1);
scanf("%s",d[i].Name);
printf("height : ");
scanf("%d",&d[i].Height);
printf("weight : ");
scanf("%d",&d[i].Weight);
if(i==a-1){
d[i].next = NULL;
}else{d[i].next = &d[i+1];
}
}

printf("No,%d : %s\n",p->No,p->Name);
printf("%.1f[cm] %.1f[kg]\n",p->Height,p->Weight);
p=p->next;
}
最後の表示部分に値が入っていません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yukkuri

2018/12/12 10:36

コードは<code>で囲んでください。編集しましょう。
ttyp03

2018/12/12 23:46

課題は先生に聞きましょう。
guest

回答1

0

ベストアンサー

ちょっと見ですが・・・型が違います。
scanf("%d",&d[i].Height);→scanf("%lf",&d[i].Height);
scanf("%d",&d[i].Weight);→scanf("%lf",&d[i].Weight);

投稿2018/12/12 10:52

編集2018/12/12 11:12
cateye

総合スコア6851

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

LouiS0616

2018/12/12 10:58

doubleならlfでは。
cateye

2018/12/12 11:13 編集

lfはprintf()じゃなかったでしょうか?・・・かん違い?
LouiS0616

2018/12/12 11:09

いえ、printfは両方fで、scanfはfとlfを使い分けます。 可変長実引数のfloat値は自動的にdouble値に昇格されるので区別は不要(というかできない)ですが、floatポインタとdoubleポインタは区別しなければならないはず。
cateye

2018/12/12 15:35 編集

(・・ゞラジャ 修正しました有りがとうございます^^
ksyiwk

2018/12/13 03:48

lfにしたところ、身長体重は表示されましたが、まだ番号の表示ができません。どうしたらよいのでしょうか。
Bull

2018/12/13 05:30 編集

番号には何も入れてませんね。 dは外部で定義されているので、0 でクリアされてます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問