11월 27, 2018 !!
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111#include <stdio.h>#include <stdlib.h>#define NUMBER_OF_CLASS 2 struct Student { char name[20]; int korean; int english; int math;}; void input (struct Student* _Class[], int Number_Of_Class);void _input (struct Student* __Class);void __input (struct Student ___Class); void Display_Class (struct Student* _Class[], int Number_Of_Class, int Number_Of_Student); int main(void) { struct Student* _Class[NUMBER_OF_CLASS] = { 0, }; int Maximum_Number_Of_Student = 50; // Dynamic memory allocation int index = 0; for (index = 0; index < NUMBER_OF_CLASS; index++) { _Class[index] = (struct Student*) calloc (Maximum_Number_Of_Student, sizeof (struct Student)); if ((struct Student*)_Class[index] == (char) 0) { printf ("Error! Dynamic memory allocation, main()\n"); return -1; } } //print Display_Class (_Class, NUMBER_OF_CLASS, Maximum_Number_Of_Student); input ((struct Student**) _Class, NUMBER_OF_CLASS); // class, student //_input ((struct Student*)* _Class); // student //__input(** _Class); // value //print Display_Class (_Class, NUMBER_OF_CLASS, Maximum_Number_Of_Student); // free () for (index = 0; index < NUMBER_OF_CLASS; index++) { if ((struct Student*) _Class[index] != (char) 0) _Class[index] = (char) 0; free ((struct Student*) _Class[index]); } return 0;} void Display_Class (struct Student* _Class[], int Number_Of_Class, int Number_Of_Student) { int _class = 0, student = 0; for (_class = 0; _class < NUMBER_OF_CLASS; _class++) { for (student = 0; student < Number_Of_Student; student++) { printf ("<< [%2d] Class >> [%2d]", _class + 1, student + 1); printf ("%s %d %d %d\n",(*(*(_Class + _class) + student)).name, (*(*(_Class + _class) + student)).korean, (*(*(_Class + _class) + student)).english, (*(*(_Class + _class) + student)).math); } printf ("\n"); }} void input (struct Student* _Class[], int Number_Of_Class) { // Call by adress or call by reference, call by value int Number_Of_Student = 3; int _class = 0, student = 0; for (_class = 0; _class < NUMBER_OF_CLASS; _class++) { for (student = 0; student < Number_Of_Student; student++) { printf (">> [%2d] Class << [%2d]", _class + 1, student + 1); (char*) gets ((char*) (*(*(_Class + _class) + student)).name); } printf("\n"); } printf ("=============\n\n"); return;}void _input (struct Student* __Class) { // call by adress or call by reference, call by value int Number_Of_Student = 3; int student = 0; for (student = 0; student < Number_Of_Student; student++) { printf (">> [%2d] Class << [%2d]", 1, student + 1); (char*) gets ((char*) (*(__Class + student)).name); } printf("\n"); return;} void __input (struct Student ___Class) { // call by value int Number_Of_Student = 1; printf (">> [%2d] Class << [%2d]", 1, 1); (char*) gets ((char*) ___Class.name); printf("\n"); return;}Colored...