1.使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。
例如:输入test.exe -a 1 2
执行1+2输出3
2.使用可变参数,实现函数求未知参数部分n个数的平均值。
3.使用可变参数,实现函数求未知参数部分n个数中的最大值。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//使用main函数的参数,实现一个整数计算器,
//程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,
//“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。
//void menu();
//void Test();
//void add(int a, int b);//加
//void subtract(int a, int b);//减
//void multiply(int a, int b);//乘
//void divide(int a, int b);//除
//
//void main()
//{
// while (1)
// {
// menu();
// Test();
// }
//}
//
//void menu()
//{
// printf("\ta:加法\n");
// printf("\ts:减法\n");
// printf("\tm:乘法\n");
// printf("\td:除法\n");
//}
//void Test()
//{
// char p[3];
// int a = 0, b = 0;
// scanf("%s %d %d", &p, &a, &b);
// switch (*p)
// {
// case 'a':
// add(a, b);
// break;
// case 's':
// subtract(a, b);
// break;
// case 'm':
// multiply(a, b);
// break;
// case 'd':
// divide(a, b);
// break;
// default:
// printf("error\n");
// break;
// }
//}
//
//void add( int a, int b)
//{
// printf("%d+%d=%d\n", a, b, a + b);
//}
//
//void subtract(int a, int b)
//{
// printf("%d-%d=%d\n",a, b, a - b);
//}
//
//void multiply(int a, int b)
//{
// printf("%d*%d=%d\n",a, b, a*b);
//}
//
//void divide(int a, int b)
//{
// printf("%d/%d=%d\n",a,b, a / b);
//}
#include<stdarg.h>
//使用可变参数,实现函数求未知参数部分n个数的平均值。
//int average(int n, ...)//省略号提示此处可能传递数量和类型未确定的参数
//{
// va_list arg;//(1)首先在函数里定义一组VA_LIST型的变量,这个变量是指向参数的指针
// int i = 0;
// int sum = 0;
// va_start(arg, n);//(2)然后用VA_START宏初始化刚定义的VA_LIST变量;
// for (i = 0; i < n; i++)
// {
// sum += va_arg(arg, int);//(3)然后用VA_ARG返回可变的参数,
// //VA_ARG的第二个参数是你要返回的参数的类型
// //(如果函数有多个可变参数的,依次调用VA_ARG获取各个参数);
// }
// va_end(arg);//(4)最后用VA_END宏结束可变参数的获取。
// return sum / n;
//}
//
//void main()
//{
// printf("%d\n", average(5, 1, 2, 3, 4, 5));
//}
//使用可变参数,实现函数求未知参数部分n个数中的最大值。
int Max(int n, ...)//省略号提示此处可能传递数量和类型未确定的参数
{
va_list arg;
int i = 0;
int max = 0;
int tmp = 0;
va_start(arg, n);
for (i = 0; i < n; i++)
{
if (max < (tmp = va_arg(arg, int)) )
{
max = tmp;
}
}
va_end(arg);
return max;
}
void main()
{
printf("%d\n", Max(5, 1, 2, 3, 9, 5));
}
本文介绍了一个基于C语言的简易计算器程序,通过命令行参数实现加、减、乘、除运算,并展示了如何利用可变参数求平均值与最大值。
3837

被折叠的 条评论
为什么被折叠?



