C语言转移表之加减乘除无限进化版
生活随笔
收集整理的這篇文章主要介紹了
C语言转移表之加减乘除无限进化版
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
- 主干程序
- 初級版本
- 進階版本
- 版本進化
主干程序
- 輸入程序
- 解析程序
初級版本
void do_math(char * argc, char *argv[]) {if (strcmp(argv[0], "add") == 0){int a = atoi(argv[1]);//字符串轉a整形int b = atoi(argv[2]);//字符串轉b整形printf("%s + %s = %d\n", argv[1], argv[2], add(a, b));//打印加法結果a+b}else if (strcmp(argv[0], "sub") == 0){int a = atoi(argv[1]);int b = atoi(argv[2]);printf("%s - %s = %d\n", argv[1], argv[2], sub(a, b));} }進階版本
int add(int a, int b) {return a + b; } int sub(int a, int b) {return a - b; } int(*pf)(int a, int b) = NULL; void do_math(char * argc, char *argv[]) {if (strcmp(argv[0], "add") == 0){pf = add;}if (strcmp(argv[0], "sub") == 0){pf = sub;}int a = atoi(argv[1]);int b = atoi(argv[2]);printf("%s + %s = %d\n", argv[1], argv[2], pf(a, b)); } #include<stdio.h> #include<stdlib.h>float add(float a, float b) {return a + b; } float sub(float a, float b) {return a - b; } float mul(float a, float b) {return a * b; } float div(float a, float b) {return a / b; }int main(void) {float(*operate[])(float, float) = { add,sub,mul,div };float number_a, number_b;float result;int oprate;printf("input the operator!1 +,2 -,3 *,4 /\n");scanf("%d", &oprate);printf("Input the number_a:");scanf("%f", &number_a);printf("Input the number_b:");scanf("%f", &number_b);printf("the result is %.3f\n",result = operate[oprate - 1](number_a, number_b));system("pause");return 0; }這兩句關鍵程序
float(*operate[])(float, float) = { add,sub,mul,div }; result = operate[oprate - 1](number_a, number_b)版本進化
總結
以上是生活随笔為你收集整理的C语言转移表之加减乘除无限进化版的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 成都大熊猫繁育研究基地熊猫吃饭时间
- 下一篇: 成都大熊猫繁育研究基地最佳游玩时间