質問: //ステータス構造体 typedef struct{ char name[256]; int HP; int AP; int DP; int EP; } player; //プロトタイプ宣言 void InputStatus(player *data); void ViewStatus(player data); //メイン関数 int main() { player data; InputStatus(&data); ViewStatus(data); return 0; } //ステータス入力関数 void InputStatus(player *data) { printf("名前を入力して下さい\n"); scanf("%s",data->name); printf("パラメータ:300を HP、AP、DP、EP(回避)にそれぞれ振り分けて下さい\n"); printf("※EPの上限は40です\n"); scanf("%d",&data->HP); scanf("%d",&data->AP); scanf("%d",&data->DP); scanf("%d",&data->EP); printf("\n"); //ここのif文に通したいのですがどうすればいいでしょうか if(data.HP + data.AP + data.DP + data.EP > 300){ printf("パラメータ合計が300を超えています。もう一度入力して下さい\n"); } //ステータス表示関数 void ViewStatus(player data) { printf("名前:%s\n",data.name); printf(" HP :%d\n",data.HP); printf(" AP :%d\n",data.AP); printf(" DP :%d\n",data.DP); printf(" EP :%d\n",data.EP); printf("\n"); } ### 補足情報(言語/FW/ツール等のバージョンなど) c言語 コマンドプロンプトを使用しています
回答: InputStatus関数は構造体のアドレスを受け取っているので、if文の所はscanfのところのようにこうします。 ``` if(data->HP + data->AP + data->DP + data->EP > 300){ ```