fork download
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. typedef struct{
  5. char name[20];
  6. int unit;
  7. double height;
  8. double weight;
  9. }PROFILE;
  10.  
  11. void input(PROFILE data[], int n);
  12. void output(PROFILE data[], int n);
  13.  
  14. int main(void){
  15.  
  16. int n;
  17. PROFILE *data;
  18.  
  19. printf("人数:");
  20. scanf("%d",&n);
  21.  
  22. if((data = (PROFILE *)malloc(sizeof(PROFILE) * n)) == NULL){
  23. puts("メモリの確保に失敗しました。");
  24. exit(1);
  25. }
  26. input(data, n);
  27. output(data, n);
  28.  
  29. free(data);
  30.  
  31. return 0;
  32. }
  33.  
  34. void input(PROFILE data[], int n){
  35.  
  36. int i;
  37.  
  38. for(i = 0; i < n; i++){
  39. printf("%d人目の名前:", i+1);
  40. scanf("%s", data[i].name);
  41. printf("%d人目の取得単位数:", i+1);
  42. scanf("%d", &data[i].unit);
  43. printf("%d人目の身長:", i+1);
  44. scanf("%lf", &data[i].height);
  45. printf("%d人目の体重:", i+1);
  46. scanf("%lf", &data[i].weight);
  47. putchar('\n');
  48. }
  49.  
  50. return;
  51. }
  52.  
  53. void output(PROFILE data[], int n){
  54. int i;
  55.  
  56. for(i = 0; i < n; i++){
  57. printf("%d人目\n", i+1);
  58. printf("名前:%s 取得単位数:%d 身長:%.1f 体重:%.1f\n",
  59. data[i].name,data[i].unit,data[i].height, data[i].weight);
  60. }
  61.  
  62. return;
  63. }
Success #stdin #stdout 0.01s 1856KB
stdin
3
あああ
30
170
60
いいい
25
180
70
ううう
32
165
54
stdout
人数:1人目の名前:1人目の取得単位数:1人目の身長:1人目の体重:
2人目の名前:2人目の取得単位数:2人目の身長:2人目の体重:
3人目の名前:3人目の取得単位数:3人目の身長:3人目の体重:
1人目
名前:あああ 取得単位数:30 身長:170.0 体重:60.0
2人目
名前:いいい 取得単位数:25 身長:180.0 体重:70.0
3人目
名前:ううう 取得単位数:32 身長:165.0 体重:54.0