fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #define MAX_CHARACTER (256)
  5.  
  6. struct tag_address {
  7. int no;
  8. char name[MAX_CHARACTER];
  9. char addr[MAX_CHARACTER];
  10. struct tag_address *next;
  11. };
  12.  
  13. struct tag_address *address = NULL;
  14. int enter(int, const char *, const char *);
  15. struct tag_address *find(int);
  16. int delete(int);
  17. void show_all(void);
  18. void delete_all(void);
  19.  
  20. int main(void) {
  21.  
  22. struct tag_address *address_data;
  23. char in_buf[8];
  24. char in_no[MAX_CHARACTER];
  25. char in_addr[MAX_CHARACTER];
  26. char in_name[MAX_CHARACTER];
  27. char *c;
  28. int no, menu_no;
  29.  
  30. do {
  31. printf("input 1[ret] to enter, 2[ret] to search, 3[ret] to delete, 4[ret] to all, 9[ret] to quit.\n");
  32. printf("input menu number> ");
  33. fgets(in_buf, sizeof(in_buf), stdin);
  34. menu_no = strtol(in_buf, NULL, 10);
  35.  
  36. switch(menu_no) {
  37. case 1:
  38. printf("input number> ");
  39. fgets(in_no, sizeof(in_no), stdin);
  40. no = strtol(in_no, NULL, 10);
  41.  
  42. printf("input name> ");
  43. fgets(in_name, sizeof(in_name), stdin);
  44. c = strchr(in_name, '\n');
  45. if (c != NULL) {
  46. *c = '\0';
  47. }
  48.  
  49. printf("input address> ");
  50. fgets(in_addr, sizeof(in_addr), stdin);
  51. c = strchr(in_addr, '\n');
  52. if (c != NULL) {
  53. *c = '\0';
  54. }
  55.  
  56. if (enter(no, in_name, in_addr) == -1) {
  57. printf("error\n\n\n");
  58. } else {
  59. printf("entered\n\n\n");
  60. }
  61. break;
  62.  
  63. case 2:
  64. printf("input number> ");
  65. fgets(in_no, sizeof(in_no), stdin);
  66. no = strtol(in_no, NULL, 10);
  67.  
  68. address_data = find(no);
  69. if (address_data == NULL) {
  70. printf("no data\n\n\n");
  71. } else {
  72. printf("no = %d\nname = %s\naddress = %s\n\n\n", no, address_data->name, address_data->addr);
  73. }
  74. break;
  75.  
  76. case 3:
  77. printf("input number> ");
  78. fgets(in_no, sizeof(in_no), stdin);
  79. no = strtol(in_no, NULL, 10);
  80.  
  81. if (delete(no) == -1) {
  82. printf("no data\n\n\n");
  83. } else {
  84. printf("deleted\n\n\n");
  85. }
  86. break;
  87.  
  88. case 4:
  89. show_all();
  90. break;
  91.  
  92. }
  93. } while (menu_no != 9);
  94.  
  95. delete_all();
  96. return 0;
  97. }
  98.  
  99. int enter(int no, const char *name, const char *addr) {
  100.  
  101. struct tag_address *ptr_now, *ptr_before, *ptr_new;
  102. ptr_now = address;
  103. ptr_before = NULL;
  104. printf("一度目のデータ prt_now(enter)=%p\nptr_before(enter)=%p\n", ptr_now, ptr_before);
  105.  
  106. while (ptr_now != NULL) {
  107. if (no == ptr_now->no) {
  108. printf("already exist\n");
  109. return -1;
  110. }
  111.  
  112. if (no < ptr_now->no) {
  113. break;
  114. }
  115.  
  116. ptr_before = ptr_now;
  117. ptr_now = ptr_now->next;
  118. printf("二度目のデータ prt_now(enter)=%p\nptr_before(enter)=%p\n", ptr_now, ptr_before);
  119. }
  120.  
  121. ptr_new = malloc(sizeof(struct tag_address));
  122. if (ptr_new == NULL){
  123. printf("Memory allocation error!\n");
  124. return -1;
  125. }
  126. printf("三度目のデータ malloc prt_now(enter)=%p\nptr_before(enter)=%p\nptr_new(enter)=%p\n", ptr_now, ptr_before, ptr_new);
  127.  
  128. ptr_new->no = no;
  129. strncpy(ptr_new->name, name, sizeof(ptr_new->name) - 1);
  130. ptr_new->name[sizeof(ptr_new->name) - 1] = '\0';
  131. strncpy(ptr_new->addr, addr, sizeof(ptr_new->addr) - 1);
  132. ptr_new->addr[sizeof(ptr_new->addr) - 1] = '\0';
  133.  
  134. if (address == NULL){
  135. address = ptr_new;
  136. }
  137.  
  138. ptr_new->next = ptr_now;
  139. printf("prt_new->next(enter)=%p\n", ptr_new->next);
  140.  
  141. if (ptr_before != NULL){
  142. ptr_before->next = ptr_new;
  143. printf("prt_before->next(enter)=%p\n", ptr_before->next);
  144. }
  145.  
  146. if (address->no > ptr_new->no){
  147. address = ptr_new;
  148. printf("address(enter)=%p\n", address);
  149. }
  150. return 0;
  151. }
  152.  
  153. struct tag_address *find(int no) {
  154.  
  155. struct tag_address *ptr;
  156. ptr = address;
  157. printf("prt1(find)=%p\n", ptr);
  158.  
  159. while(ptr != NULL) {
  160. if (no == ptr->no) {
  161. return ptr;
  162. }
  163. if (no < ptr->no) {
  164. break;
  165. }
  166. ptr = ptr->next;
  167. printf("prt2(find)=%p\n", ptr);
  168. }
  169. return NULL;
  170. }
  171.  
  172. int delete(int no) {
  173.  
  174. struct tag_address *ptr_now, *ptr_before;
  175. ptr_now = address;
  176. printf("一度目のデータ prt_now(delete)=%p\n", ptr_now);
  177.  
  178. if (ptr_now == NULL) {
  179. return -1;
  180. }
  181.  
  182. while(ptr_now != NULL) {
  183. if (no == ptr_now->no) {
  184. break;
  185. }
  186. if (no < ptr_now->no) {
  187. return -1;
  188. }
  189. ptr_before = ptr_now;
  190. ptr_now = ptr_now->next;
  191. printf("二度目のデータ prt_now(delete)=%p\n,ptr_before(delete)=%p\n", ptr_now, ptr_before);
  192. }
  193.  
  194. if (ptr_now == NULL) {
  195. return -1;
  196. }
  197.  
  198. if (address == ptr_now) {
  199. address = ptr_now->next;
  200. } else {
  201. ptr_before->next = ptr_now->next;
  202. }
  203.  
  204. free(ptr_now);
  205. return 0;
  206. }
  207.  
  208. void show_all(void) {
  209.  
  210. struct tag_address *ptr_now;
  211. ptr_now = address;
  212. printf("prt_now1(show)=%p\n", ptr_now);
  213.  
  214. while (ptr_now != NULL) {
  215. printf("no = %d\nname = %s\naddress = %s\n\n\n", ptr_now->no, ptr_now->name, ptr_now->addr);
  216. ptr_now = ptr_now->next;
  217. printf("prt_now2(show)=%p\n", ptr_now);
  218. }
  219. }
  220.  
  221. void delete_all(void) {
  222.  
  223. struct tag_address *ptr_now, *ptr_before;
  224. ptr_now = address;
  225.  
  226. while (ptr_now != NULL) {
  227. ptr_before = ptr_now;
  228. ptr_now = ptr_now->next;
  229. printf("prt_now(delete_all)=%p\n,ptr_before(delete_all)=%p\n", ptr_now, ptr_before);
  230. free(ptr_before);
  231. }
  232. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Main.java:1: error: illegal character: '#'
#include <stdio.h>
^
Main.java:1: error: class, interface, or enum expected
#include <stdio.h>
         ^
Main.java:2: error: illegal character: '#'
#include <stdlib.h>
^
Main.java:3: error: illegal character: '#'
#include <string.h>
^
Main.java:4: error: illegal character: '#'
#define MAX_CHARACTER (256)
^
Main.java:8: error: class, interface, or enum expected
    char name[MAX_CHARACTER];
    ^
Main.java:9: error: class, interface, or enum expected
    char addr[MAX_CHARACTER];
    ^
Main.java:10: error: class, interface, or enum expected
    struct tag_address *next;
    ^
Main.java:11: error: class, interface, or enum expected
};
^
Main.java:13: error: class, interface, or enum expected
struct tag_address *address = NULL;
^
Main.java:14: error: class, interface, or enum expected
int enter(int, const char *, const char *);
^
Main.java:15: error: class, interface, or enum expected
struct tag_address *find(int);
^
Main.java:16: error: class, interface, or enum expected
int delete(int);
^
Main.java:17: error: class, interface, or enum expected
void show_all(void);
^
Main.java:18: error: class, interface, or enum expected
void delete_all(void);
^
Main.java:20: error: class, interface, or enum expected
int main(void) {
^
Main.java:23: error: class, interface, or enum expected
    char in_buf[8];
    ^
Main.java:24: error: class, interface, or enum expected
    char in_no[MAX_CHARACTER];    
    ^
Main.java:25: error: class, interface, or enum expected
    char in_addr[MAX_CHARACTER];
    ^
Main.java:26: error: class, interface, or enum expected
    char in_name[MAX_CHARACTER];
    ^
Main.java:27: error: class, interface, or enum expected
    char *c;
    ^
Main.java:28: error: class, interface, or enum expected
    int no, menu_no;
    ^
Main.java:30: error: class, interface, or enum expected
    do {
    ^
Main.java:32: error: class, interface, or enum expected
        printf("input menu number> ");
        ^
Main.java:33: error: class, interface, or enum expected
        fgets(in_buf, sizeof(in_buf), stdin);
        ^
Main.java:34: error: class, interface, or enum expected
        menu_no = strtol(in_buf, NULL, 10);
        ^
Main.java:36: error: class, interface, or enum expected
        switch(menu_no) {
        ^
Main.java:39: error: class, interface, or enum expected
            fgets(in_no, sizeof(in_no), stdin);
            ^
Main.java:40: error: class, interface, or enum expected
            no = strtol(in_no, NULL, 10);
            ^
Main.java:42: error: class, interface, or enum expected
            printf("input name> ");
            ^
Main.java:43: error: class, interface, or enum expected
            fgets(in_name, sizeof(in_name), stdin);
            ^
Main.java:44: error: class, interface, or enum expected
            c = strchr(in_name, '\n');
            ^
Main.java:45: error: class, interface, or enum expected
            if (c != NULL) {
            ^
Main.java:47: error: class, interface, or enum expected
            }
            ^
Main.java:50: error: class, interface, or enum expected
            fgets(in_addr, sizeof(in_addr), stdin);
            ^
Main.java:51: error: class, interface, or enum expected
            c = strchr(in_addr, '\n');
            ^
Main.java:52: error: class, interface, or enum expected
            if (c != NULL) {
            ^
Main.java:54: error: class, interface, or enum expected
            }
            ^
Main.java:58: error: class, interface, or enum expected
            } else {
            ^
Main.java:60: error: class, interface, or enum expected
            }
            ^
Main.java:63: error: class, interface, or enum expected
        case 2:
        ^
Main.java:65: error: class, interface, or enum expected
            fgets(in_no, sizeof(in_no), stdin);
            ^
Main.java:66: error: class, interface, or enum expected
            no = strtol(in_no, NULL, 10);
            ^
Main.java:68: error: class, interface, or enum expected
            address_data = find(no);
            ^
Main.java:69: error: class, interface, or enum expected
            if (address_data == NULL) {
            ^
Main.java:71: error: class, interface, or enum expected
            } else {
            ^
Main.java:73: error: class, interface, or enum expected
            }
            ^
Main.java:76: error: class, interface, or enum expected
        case 3:
        ^
Main.java:78: error: class, interface, or enum expected
            fgets(in_no, sizeof(in_no), stdin);
            ^
Main.java:79: error: class, interface, or enum expected
            no = strtol(in_no, NULL, 10);
            ^
Main.java:81: error: class, interface, or enum expected
            if (delete(no) == -1) {
            ^
Main.java:83: error: class, interface, or enum expected
            } else {
            ^
Main.java:85: error: class, interface, or enum expected
            }
            ^
Main.java:88: error: class, interface, or enum expected
        case 4:
        ^
Main.java:90: error: class, interface, or enum expected
            break;
            ^
Main.java:92: error: class, interface, or enum expected
        }
        ^
Main.java:95: error: class, interface, or enum expected
    delete_all();
    ^
Main.java:96: error: class, interface, or enum expected
    return 0;
    ^
Main.java:97: error: class, interface, or enum expected
}
^
Main.java:102: error: class, interface, or enum expected
    ptr_now = address;
    ^
Main.java:103: error: class, interface, or enum expected
    ptr_before = NULL;
    ^
Main.java:104: error: class, interface, or enum expected
printf("??????? prt_now(enter)=%p\nptr_before(enter)=%p\n", ptr_now, ptr_before);
^
Main.java:106: error: class, interface, or enum expected
    while (ptr_now != NULL) {
    ^
Main.java:109: error: class, interface, or enum expected
            return -1;
            ^
Main.java:110: error: class, interface, or enum expected
        }
        ^
Main.java:114: error: class, interface, or enum expected
        }
        ^
Main.java:117: error: class, interface, or enum expected
        ptr_now = ptr_now->next;
        ^
Main.java:118: error: class, interface, or enum expected
printf("??????? prt_now(enter)=%p\nptr_before(enter)=%p\n", ptr_now, ptr_before);
^
Main.java:119: error: class, interface, or enum expected
    }
    ^
Main.java:122: error: class, interface, or enum expected
    if (ptr_new == NULL){
    ^
Main.java:124: error: class, interface, or enum expected
        return -1;
        ^
Main.java:125: error: class, interface, or enum expected
    }
    ^
Main.java:128: error: class, interface, or enum expected
    ptr_new->no = no;
    ^
Main.java:129: error: class, interface, or enum expected
    strncpy(ptr_new->name, name, sizeof(ptr_new->name) - 1);
    ^
Main.java:130: error: class, interface, or enum expected
    ptr_new->name[sizeof(ptr_new->name) - 1] = '\0';
    ^
Main.java:131: error: class, interface, or enum expected
    strncpy(ptr_new->addr, addr, sizeof(ptr_new->addr) - 1);
    ^
Main.java:132: error: class, interface, or enum expected
    ptr_new->addr[sizeof(ptr_new->addr) - 1] = '\0';
    ^
Main.java:134: error: class, interface, or enum expected
    if (address == NULL){
    ^
Main.java:136: error: class, interface, or enum expected
    }
    ^
Main.java:139: error: class, interface, or enum expected
printf("prt_new->next(enter)=%p\n", ptr_new->next);
^
Main.java:141: error: class, interface, or enum expected
    if (ptr_before != NULL){
    ^
Main.java:143: error: class, interface, or enum expected
printf("prt_before->next(enter)=%p\n", ptr_before->next);
^
Main.java:144: error: class, interface, or enum expected
    }
    ^
Main.java:148: error: class, interface, or enum expected
printf("address(enter)=%p\n", address);
^
Main.java:149: error: class, interface, or enum expected
    }
    ^
Main.java:151: error: class, interface, or enum expected
}
^
Main.java:156: error: class, interface, or enum expected
    ptr = address;
    ^
Main.java:157: error: class, interface, or enum expected
printf("prt1(find)=%p\n", ptr);
^
Main.java:159: error: class, interface, or enum expected
    while(ptr != NULL) {
    ^
Main.java:162: error: class, interface, or enum expected
        }
        ^
Main.java:165: error: class, interface, or enum expected
        }
        ^
Main.java:167: error: class, interface, or enum expected
printf("prt2(find)=%p\n", ptr);
^
Main.java:168: error: class, interface, or enum expected
    }
    ^
Main.java:170: error: class, interface, or enum expected
}
^
Main.java:175: error: class, interface, or enum expected
    ptr_now = address;
    ^
Main.java:176: error: class, interface, or enum expected
printf("??????? prt_now(delete)=%p\n", ptr_now);
^
Main.java:178: error: class, interface, or enum expected
    if (ptr_now == NULL) {
    ^
Main.java:180: error: class, interface, or enum expected
    }
    ^
Main.java:185: error: class, interface, or enum expected
        }
        ^
Main.java:188: error: class, interface, or enum expected
        }
        ^
100 errors
stdout
Standard output is empty