fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h> //乱数の生成のため
  4.  
  5. //構造体の宣言(いじらない)
  6. typedef struct {
  7. char na[64];
  8. int stts[6];
  9. } Monster;
  10.  
  11. //ランダムにモンスターを生成(いじらない)
  12. Monster creMonster(){
  13. int i,k;
  14. Monster tmp;
  15. k = rand()%8+4;
  16. int a = 'a' + rand()%26;
  17. for(i=0;i<k;i++) tmp.na[i] = 'a' + rand()%26;
  18. tmp.na[k] = '\0';
  19. for(i=0;i<6;i++) tmp.stts[i] = rand()%255+1;
  20. return tmp;
  21. }
  22.  
  23. //モンスターの情報を表示する関数(修正)
  24. void priMonster(Monster m){
  25. // ステータスの名前を配列で保持
  26. const char* status_names[] = {
  27. "攻撃力", "防御力", "素早さ", "体力", "知力", "幸運"
  28. };
  29.  
  30. printf("名前:%12s \nステータス \n", m.na);
  31.  
  32. // ステータスの名前と値を表示
  33. for(int i = 0; i < 6; i++) {
  34. printf("%s:%3d\n", status_names[i], m.stts[i]);
  35. }
  36. }
  37.  
  38. int main(){
  39. srand((unsigned)time(NULL)); //乱数を生成する時のおまじない
  40. int i, n;
  41. Monster *monsters;
  42. printf("a"),
  43. scanf("%d", &n);
  44. monsters = (Monster *)malloc(sizeof(Monster)*n);
  45.  
  46. // 以下はいじらなくてOK
  47. if(monsters == NULL){
  48. printf("ERROR\n");
  49. return 0;
  50. }
  51.  
  52. for(i = 0; i < n; i++){
  53. monsters[i] = creMonster();
  54. printf("%03d ", i + 1);
  55. priMonster(monsters[i]);
  56. }
  57.  
  58. free(monsters);
  59. return 0;
  60. }
  61.  
Success #stdin #stdout 0s 5288KB
stdin
5
stdout
a001  名前:   xjtcplwpx 
ステータス  
攻撃力: 25
防御力:184
素早さ: 94
体力:101
知力:216
幸運: 66
002  名前:        ixav 
ステータス  
攻撃力: 98
防御力: 42
素早さ: 18
体力:131
知力: 26
幸運: 38
003  名前:      rlzdgd 
ステータス  
攻撃力:197
防御力: 60
素早さ: 14
体力:208
知力:253
幸運:165
004  名前:        voop 
ステータス  
攻撃力:253
防御力:173
素早さ:248
体力:206
知力: 96
幸運: 90
005  名前: tsshskstnax 
ステータス  
攻撃力:149
防御力:  6
素早さ:224
体力:101
知力:130
幸運:  5