No.18 代码练习:打印乘法口诀,交换变量值,判断闰年,数组操作

学习不易,需要坚持。

1.实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定,
输入5,输出55口诀表,输入,输出99的乘法口诀表。

2.使用函数实现两个数的交换。

3.实现一个函数判断year是不是润年。

4.创建一个数组,实现函数init()初始化数组、实现empty()清空数组、实现reverse()函数完成数组元素的逆置。
要求:自己设计函数的参数,返回值。

1.
//实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定,
//输入,输出*9口诀表,输入,输出*5的乘法口诀表。
#include <stdio.h>

void Print(int n)
{
	int i = 0 ;
	int j = 0 ;

	for(i=1; i<=n; i++)
	{
		for(j=1; j<=i; j++)
		{
			printf("%d×%d=%2d  ", i, j, i*j) ;
		}
		printf("\n") ;
	}
}
int main() 
{
	int input = 0 ;
	printf("--------将打印出乘法口诀表--------\n") ;
	printf("请输入你想打印的格式: ") ;
	scanf("%d", &input) ;
	Print(input) ;
	return 0 ;
}

运行结果:
在这里插入图片描述

在这里插入图片描述

2.
//使用函数实现两个数的交换。
#include <stdio.h>

void Swap(int* p1, int* p2)
{
	int temp = *p1 ;
	*p1 = *p2 ;
	*p2 = temp ;
}
int main()
{
	int a = 0 ;
	int b = 0 ;
	printf("请分别为a和b赋值: ") ;
	scanf("%d%d", &a, &b) ;
	printf("交换前:a=%d, b=%d\n",a, b) ;
	Swap(&a, &b) ;//此处应该传进指针,否则将无法对函数里的变量进行操作
	printf("交换后:a=%d, b=%d\n",a, b) ;
	return 0 ;
}

运行结果:
在这里插入图片描述

3.
//写个判断某年是不是闰年的函数
#include <stdio.h>

int Is_leap_year(int y)
{
	return (((y % 4 == 0) && (y % 100 != 0)) || (y % 400 == 0)) ; //此处可以直接将表达式值作为函数返回值,使程序更简洁
}
int main()
{
	int year = 0 ;
	printf("--------此程序用来判断某年是否为闰年--------\n") ;
	printf("请输入想要判断的年份: ") ;
	scanf("%d", &year) ;
	if ( 1 ==Is_leap_year(year) )
	{
		printf("%d是闰年\n", year) ;
	}
	else
		printf("%d不是闰年\n", year) ;
	return 0 ;
}

运行结果:
在这里插入图片描述

4.
//创建一个数组,实现函数init()初始化数组、实现empty()清空数组、实现reverse()函数完成数组元素的逆置。
//要求:自己设计函数的参数,返回值。
#include <stdio.h>

void Init(int arr[], int sz)
{
	int i = 0 ;
	for(i=0; i<sz; i++)
	{
		arr[i] = i ;
	}
}

void Empty(int arr[], int sz)
{
	int i = 0 ;
	for(i=0; i<sz; i++)
	{
		arr[i] = 0 ;
	}
}

void Reverse(int arr[], int sz)
{
	int left = 0 ;
	int right = sz - 1 ;
	while(left <= right)
	{
		int temp = arr[left] ;
		arr[left] = arr[right] ;
		arr[right] = temp ;
		left++ ;
		right-- ;
	}
}

void Print(int arr[], int sz)
{
	int i = 0 ;
	for(i=0; i<sz; i++)
	{
		printf("%d ", arr[i]) ;
	}
}

int main()
{
	int input = 0 ;
	int arr[10] ={ 0 } ;
	int size = sizeof(arr) / sizeof(arr[0]) ;
	printf("----------此程序将会对数组进行操作----------\n") ;
	printf("		1.初始化数组\n") ;
	printf("		2.逆置数组\n") ;
	printf("		3.清空数组\n") ;
	printf("		4.安全退出\n") ;
	while(1)
	{
		printf("\n请输入相应的选项: ") ;
		scanf("%d", &input) ;

		switch(input)
		{
		case 1 :
			printf("初始化后数组为:\n") ;
			Init(arr, size) ;
			Print(arr, size) ;
			break ;
		case 2 :
			printf("逆置后数组为:\n") ;
			Reverse(arr, size) ;
			Print(arr, size) ;
			break ;
		case 3 :
			printf("清空后数组为:\n") ;
			Empty(arr, size) ;
			Print(arr, size) ;
			break ;
		case 4 :
			return 0 ;
		default :
			printf("输入错误,请重新输入: ") ;
		}
	}
	return 0 ;

}

运行结果:
在这里插入图片描述

学习不易,需要坚持。

猜你喜欢

转载自blog.csdn.net/studyhardi/article/details/83827700