재 귀 함수 및 가 변 매개 변수 에 대한 전형 적 인 프로 그래 밍 연습

2205 단어 c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <assert.h>
#include <stdarg.h>
#include "func_test.h"


/*                  */
void binary_to_ascii(u32 value)
{
	u32 quotient;

	quotient = value / 10;
	if(quotient != 0)
		binary_to_ascii(quotient);
	putchar( value % 10 + '0');
}

/*       ,     */
float average(int n_values, ... )
{
	va_list  var_arg;
	int      count;
	float    sum = 0;

	/* va_start        */
	va_start( var_arg , n_values );

	/*            */
	for( count = 0; count < n_values; count += 1)
	{
		sum += va_arg(var_arg , int);
	}

	/*        */
	va_end( var_arg );

	return sum / n_values;

}

/*          */
int hermite(int n , int x)
{
	if(n <= 0)
	{
		return 1;
	}
	 if(n == 1)
	{
		return 2*x;
	}
	if(n >= 2)
	{
		return (2*x*hermite(n-1 , x) - 2*(n-1)*hermite(n-2,x));
	}
}

/*          */
int gcd(int M , int N)
{
	int R = 0;
	if((M <= 0) || (N <= 0))
	{
		return 0;
	}

	R = M % N;

	if(R == 0)
	{
		return N;
	}
	else if(R > 0)
	{
		return gcd(N , R);
	}
}

/*ascii to integer,        */
int ascii_to_integer( char *string )
{
	u32 result = 0;
	
	while(*string != '\0')
	{
		if(*string >= '0' && *string <= '9')
		{
			result = result * 10 + (*string - '0');

			string++;
		}
		else
		{
			return 0;
		}
	}
	return result;


}

/*    max_list   ,                       */
int max_list(n_values , ...)
{
	va_list var_arg;
	int max   = 0;
	int temp  = 0;
	u32 i     = 0;

	va_start(var_arg , n_values);

	for(i = 0; i < n_values; i++ )
	{
		temp = va_arg(var_arg,int);
		if(temp >= max)
		{
			max = temp;
		}
		
	}

	va_end(var_arg);

		return max;
}







int main(void)
{
//	binary_to_ascii(15643);
//	printf("The sum is :%f
",average(4,8,6,4,8)); // printf("The hermite value is :%d
",hermite(4,8)); // printf("The gcd value is :%d
",gcd(78,96)); // printf("The ascii to integer is :%d
",ascii_to_integer("1678")); printf("The max num is :%d
",max_list(6,1,3,5,2,17,9)); getch(); return 0; }

좋은 웹페이지 즐겨찾기