演習問題の答え #include <stdio.h> #include <stdlib.h> #define NUM 5 typedef struct { // 構造体の定義 float shincho; // 身長 float taiju; // 体重 } shintai; void hyouji(shintai p[],int n) // n個分のデータを表示する { int i; for(i=0;i<n;i++) printf("No.%2d 身長: %4.1f 体重: %4.1f \n",i,p[i].shincho,p[i].taiju); }
演習問題の答え // メイン処理 int main() { int i; int num; shintai *p; printf(“データ数:”); scanf(“%d”, &num); p=(shintai *)calloc(num, sizeof(shintai)); if (p==NULL) { printf(”メモリの確保はできなかった\n”); exit(1); } shintai p[NUM]
演習問題の答え for(i=0; i<num; i++){ printf("No.%d\n",i); printf("\t身長 : "); scanf("%f",&p[i].shincho); printf("\t体重 : "); scanf("%f",&p[i].taiju); } hyouji(p, num); free(p); return 0; }
補足: キャストとsizeof演算子 キャスト演算子 データ型を変換する操作 float x; int y; y=(int) x; 引数の型のサイズをbyte数で返す sizeof(int) = 4 sizeof(char) = 1 書式: (型)式 「式」で示すデータが「型」に変換される 型が違うものを代入するときなどに使用