【C言語】アナログ計算機

2433 ワード

#include <stdio.h>
#include <stdlib.h>

int _add(int a, int b)
{
    return a + b;
}
int _sub(int a, int b)
{
    return a - b;
}
int _mul(int a, int b)
{
    return a*b;
}
int _div(int a, int b)
{
    if (b == 0)
    {
	printf("   0
");     }     return a / b; } void menu() { printf("*************************
"); printf("**** 1.add   2.sub   ****
"); printf("**** 3.mul   4.div   ****
"); printf("******** 0.exit *********
"); printf("*************************
"); } int main() {     int input = 1;     int num1 = 0;     int num2 = 0;     int ret = 0;     while (input)     { menu(); printf(" >:"); scanf("%d", &input); printf(" >:"); scanf("%d%d", &num1, &num2); switch (input) { case 1: ret = _add(num1, num2); break; case 2: ret = _sub(num1, num2); break; case 3:         ret = _mul(num1, num2); break; case 4: ret = _div(num1, num2); break; case 0: exit(EXIT_FAILURE); break; default: printf(" , .
"); break; } printf("ret = %d
", ret);     } return 0; } , (enum) : #include <stdio.h> #include <stdlib.h> enum OP { EXIT, ADD, SUB, MUL, DIV }; int _add(int a, int b) {     return a + b; } int _sub(int a, int b) {     return a - b; } int _mul(int a, int b) {     return a*b; } int _div(int a, int b) {     if (b == 0)     { printf(" 0
");     }     return a / b; } void menu() { printf("*************************
"); printf("**** 1.add   2.sub   ****
"); printf("**** 3.mul   4.div   ****
"); printf("******** 0.exit *********
"); printf("*************************
"); } int(*pfun[5])(int, int) = {0, _add, _sub, _mul, _div}; int main() {     int input = 1;     int num1 = 0;     int num2 = 0;     int ret = 0;     while (input)     { menu(); printf(" >:"); scanf("%d", &input); printf(" >:"); scanf("%d%d", &num1, &num2); if (input >= 1 && input <= 4) { ret = pfun[input](num1, num2); } else if (input == 0) { exit(EXIT_FAILURE); } else { printf("
"); } printf("ret = %d
", ret); } return 0; }

本文は“Vs呂小布”のブログから出て、転載をお断りします!