homework_15

double my_average(int num, ...){
	assert(num > 0);
	va_list	arg;
	int i = 0;
	int sum = 0;
	va_start(arg, num);
	for (i = 0; i < num; i++){
		sum += va_arg(arg, int);
	}
	va_end(arg);
	return sum*1.0 / num;

}
int get_max(int num, ...){
	assert(num>0);
	va_list arg;
	int i = 0;
	va_start(arg, num);
	int max = va_arg(arg, int);
	for (i = 1; i < num; i++){
		int other = va_arg(arg, int);
		max = (max > other ? max : other);
	}
	va_end(arg);
	return max;
}
//4.1.模拟实现printf函数,可完成下面的功能
//能完成下面函数的调用。
//print("s ccc d\n","hello",'b','i','t',100);
//函数原型:
//print(char *format, ...)
void print_int(int num){
	if (num > 9){
		print_int(num / 10);
	}
	putchar(num%10+'0');
}
void my_print(char* format,...){//s ccc d\n
	va_list arg;
	va_start(arg, format);
	while (*format){
		switch (*format){
		case 's':
		{
			char* str = va_arg(arg, char*);
			while(*str){
				putchar(*str++);
			}
		}
			break;
		case 'c':
		{
			char ch = va_arg(arg, char);
			putchar(ch);
		}
			break;
		case 'd':
		{
			int num = va_arg(arg, int);
			print_int(num);
		}
			break;
		default:
			putchar(*format);
			break;
		}
		format++;
	}

}



猜你喜欢

转载自blog.csdn.net/m0_38032942/article/details/80358177