1. の解答例 #include int f_mult(const int a, const int b); int f_add(const int a, const int b); int f_sub(const int a, const int b); int f_mod(const int a, const int b); int f_mult(const int a, const int b) { return a * b; } int f_add(const int a, const int b) { return a + b; } int f_sub(const int a, const int b) { return a - b; } int f_mod(const int a, const int b) { return a % b; } int main(void) { int a, b, func_num; int (*f_calc[4])(const int a, const int b) = {f_mult, f_add, f_sub, f_mod}; printf("かけ算の場合は 1\n"); printf("足し算の場合は 2\n"); printf("引き算の場合は 3\n"); printf("余りを計算する場合には 4 を入力して下さい:"); scanf("%d", &func_num); printf("2 つ整数をカンマで区切って入力してください: "); scanf("%d,%d", &a, &b); printf("答えは %d です\n", (*f_calc[func_num-1])(a, b)); return 0; } 2. の解答例 #include #include #define NMAX 1024 int main(void) { int i; char str1[NMAX], str2[NMAX]; printf("文字列 1 を入力してください:"); fgets(str1, NMAX, stdin); for(i=0; str1[i] != '\n'; i++) ; str1[i]='\0'; printf("文字列 2 を入力してください:"); fgets(str2, NMAX, stdin); for(i=0; str2[i] != '\n'; i++) ; str2[i]='\0'; if ( strcmp(str1, str2) == 0 ) { printf("二つの文字列は同じです。\n"); } else { printf("二つの文字列は異なります。\n"); } printf("str1 の文字数は %d です。\n", strlen(str1)); printf("str2 の文字数は %d です。\n", strlen(str2)); strcat(str1, str2); printf("二つの文字列を連結すると %s となります。\n", str1); return 0; }