C语言练习题数组

/**
 * File Name: array.c
 * Author: Haoxuan
 * Mail: haovxuan@126.com
 * Created Time: 2020年12月17日 星期四 12时43分36秒
 **/
#include 

#define SIZE 9


/*
 * 1、使用数组写出fibonacci数列的前10项,
 * 并将该数组实现逆序输出和逆序存放。
 */
void test1()
{
	printf( "********fibonaccidao前十项倒序数列开始***********\n" );
	int arr[10] = { 1, 1 };
	for ( int i = 2; i < 10; i++ )
		arr[i] = arr[i - 1] + arr[i - 2];
	int res[10];
	for ( int i = 9; i >= 0; i-- )
		res[9 - i] = arr[i];
	for ( int i = 0; i < 10; i++ )
		printf( "%d\n", res[i] );
	printf( "********fibonaccidao前十项倒序数列结束***********\n" );
}


/*
 * *冒泡排序
 */
void test2()
{
	printf( "********冒泡排序开始***********\n" );
	int	num;
	int	arr[SIZE];

	for ( int i = 0; i < SIZE; i++ )
	{
		printf( "Please enter a number:\n" );
		scanf( "%d", &num );
		arr[i] = num;
	}
	for ( int i = 0; i < SIZE - 1; i++ )
	{
		for ( int j = 0; j < SIZE - i - 1; j++ )
			if ( arr[j] > arr[j + 1] )
			{
				int temp = arr[j];
				arr[j]		= arr[j + 1];
				arr[j + 1]	= temp;
			}
	}
	for ( int i = 0; i < SIZE; i++ )
		printf( "%d\t", arr[i] );
	printf( "\n" );
	printf( "********冒泡排序结束***********\n" );
}


/*
 * 选择排序
 * 这里掌握的不太好
 */
void test3()
{
	printf( "********选择排序开始***********\n" );
	int	num;
	int	arr[SIZE];

	for ( int i = 0; i < SIZE; i++ )
	{
		printf( "Please enter a number:\n" );
		scanf( "%d", &num );
		arr[i] = num;
	}
	for ( int i = 0; i < SIZE - 1; i++ )
	{
		int min_index = i;
		for ( int j = i + 1; j < SIZE; j++ )
		{
			if ( arr[j] < arr[min_index] )
				min_index = j;
		}
		int temp = arr[i];
		arr[i]		= arr[min_index];
		arr[min_index]	= temp;
	}
	for ( int i = 0; i < SIZE; i++ )
		printf( "%d\t", arr[i] );
	printf( "\n" );
	printf( "********选择排序结束***********\n" );
}


/*
 * 4、	数组解决进制转换问题:
 * 从终端输入要进行转换的数字(num),
 * 及要转换成的某种进制(base),按输入要求进行输出。
 */

void test4()
{
	int	num, base, temp, i = 0;
	int	arr[32];
	printf( "Please enter a number:" );
	scanf( "%d", &num );
	printf( "Please enter BASE:" );
	scanf( "%d", &base );
	temp = num;
	do
	{
		arr[i] = temp % base;
		i++;
		temp = temp / base;
	}
	while ( temp != 0 );

	for ( --i; i >= 0; i-- )
	{
		if ( arr[i] > 10 )
		{
			char ch = 'A' + arr[i] - 10;
			printf( "%c", ch );
		}else{
			printf( "%d\t", arr[i] );
		}
		printf( "\n" );
	}
}


int main()
{
	printf( "Hello Array!\n" );
	/*
	 * test1();
	 * test2();
	 * test3();
	 */
	test4();
	return(0);
}


© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容