通过命令参数实现计算器
使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。
例如:命令行参数输入:test.exe -a 1 2
执行1+2输出3
#include<stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{
int num1 = atoi(argv[2]);//此处利用atoi函数将指针数组类型转换为整型。
int num2 = atoi(argv[3]);
int ret;
if (argc != 4)//判断参数个数
{
printf("参数输入错误");
return 1;
}
if (argv[1][0] == '-')//第二个参数(字符串)判断
{
switch (argv[1][1])
{
case 'a':
ret = num1 + num2;
printf("%d ", ret);
break;
case 's':
ret = num1 - num2;
printf("%d", ret);
break;
case 'm':
ret = num1*num2;
printf("%d", ret);
break;
case'd':
ret = num1 / num2;
printf("%d\n", ret);
default:
printf("第二个参数判断错误");
break;
}
}
return 0;
}
通过设计简单的UI界面操作计算
#include <stdio.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)
{
return a / b;
}
int main()
{
int x, y;
int input = 1;
int ret = 0;
while (input)
{
printf( "*************************\n" );
printf( " 1:add 2:sub \n" );
printf( " 3:mul 4:div \n" );
printf( "*************************\n" );
printf( "请选择:" );
scanf( "%d", &input);
switch (input)
{
case 1:
printf( "输入操作数:" );
scanf( "%d %d", &x, &y);
ret = add(x, y);
break;
case 2:
printf( "输入操作数:" );
scanf( "%d %d", &x, &y);
ret = sub(x, y);
break;
case 3:
printf( "输入操作数:" );
scanf( "%d %d", &x, &y);
ret = mul(x, y);
break;
case 4:
printf( "输入操作数:" );
scanf( "%d %d", &x, &y);
ret = div(x, y);
break;
default:
printf( "选择错误\n" );
break;
}
printf( "ret = %d\n", ret);
}
return 0;
}
使用函数指针数组存储计算函数
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int add(int x, int y)
{
return x + y;
}
int sub(int x, int y)
{
return x - y;
}
int mul(int x, int y)
{
return x*y;
}
int div(int x, int y)
{
return x / y;
}
int main()
{
int x, y;
int input = 1;
int ret = 0;
int(*p[4])(int x, int y) = {add, sub, mul, div };//转移表
while (input)
{
printf("**********************************************\n");
printf("** 1: add 2: sub **\n");
printf("** 3: mul 4: div **\n");
printf("**********************************************\n");
printf("请输入:");
scanf("%d", &input);
if (((input<=4) &&( input>=1)))
{
printf("请输入操作数:");
scanf("%d %d", &x, &y);
ret = (*p[input-1])(x, y);
}
else
printf("输入有误\n");
printf("ret=%d\n", ret);
}
system("pause");
return 0;
}