構造体についてです。
身体測定表を作っていて最初に作ったデータを変更して表示したいのですがNo1の168cm→162cm
No2の74kg→74.5kg
No3の20歳→19歳
No4の田中三郎→小林三郎
(No3と4は構造体ポインタを使ってデータを変更)
全データを表示させてその後No1と3の名前~体重を丸ごと入れ替えて全データを表示させたいのですがエラーがでてしまいます。
分かる人がいましたらどこを直したらいいか教えて下さい。
#include <stdio.h>
#include <string.h>
struct data{
int no;
char name[21];
int age;
int height;
float weight;
};
struct data *sp;
void main(){
int i;
struct data a[4]={
{1,"鈴木太郎",23,168,60},
{2,"山本次郎",17,180,74},
{3,"山田花子",20,156,53},
{4,"田中三郎",35,172,68},
};
struct data b;
for(i=0;i<4;i++){
printf("番号 :%d\n",a[i].no);
printf("名前 :%s\n",a[i].name);
printf("年齢 :%d歳\n",a[i].age);
printf("身長 :%dcm\n",a[i].height);
printf("体重 :%4.1fkg\n\n",a[i]. weight);
}
a[0].height=162;
a[1].weight=74.5;
*sp[2].age=19;
strcpy(*sp[3].name,"小林三郎");
for(i=0;i<=4;i++){
b=a[0];
a[0]=a[2];
a[2]=b;
a[0].no=1;
a[2].no=3;
}
for(i=0;i<=4;i++){
printf("番号 :%d\n",a[i].no);
printf("名前 :%s\n",a[i].name);
printf("年齢 :%d歳\n",a[i].age);
printf("身長 :%dcm\n",a[i].height);
printf("体重 :%4.1fkg\n\n",a[i].weight);
}
}
お礼
ありがとうございます。。。恥ずかしい。。 なんか fraction function よくまちがえるんです。。。注意力がないというか。。。 助かりました!