今日题目
1.实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定,输入9,输出99口诀表,输入12,输出1212的乘法口诀表。
2.实现一个函数,用来实现两个数的交换。
3.实现一个函数判断year是不是闰年。
4.实现一个函数,判断一个数是不是素数。
看看今天的题目,可以看见乘法口诀表、交换两个数、判断闰年、判断素数都是之前写过的内容,但是今天的考点是要用函数来实现这些功能,意思就是将代码用函数封装起来,在我们要用的时候直接调用就好了。我们经常使用的库函数就是大佬们将常用的功能用代码实现并封装成函数,我们直接拿来用不要太方便
使用函数封装代码有哪些好处?
- 使程序变得更简短、清晰(提高了代码的可读性)
- 提高了代码的复用性 (代码复用)
- 提高了程序开发的效率
- 有利于程序的维护
1.打印乘法表
int MulTable(int n) {
int i = 0;
int j = 0;
for (i = 1; i <= n; i++) {
for (j = 1; j <= i; j++) {
printf("%d*%d=%-4d", j, i, i*j);
}
printf("\n");
}
return 0;
}
我们来调用一下刚刚写的乘法表函数
#include<stdio.h>
#include<stdlib.h>
int main() {
MulTable(9);
system("pause");
return 0;
}
运行结果:
#include<stdio.h>
#include<stdlib.h>
int main() {
MulTable(12);
system("pause");
return 0;
}
运行结果:
不仅准确无误的实现了题目要求的功能,代码写起来也太短了吧!(舒服~)
2.交换两个数
void swap(int* x,int* y) {
int tmp = *x;
*x = *y;
*y = tmp;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main() {
int num1 = 0;
int num2 = 0;
scanf("%d %d", &num1, &num2);
swap(&num1,&num2);
printf("num1=%d num2=%d\n", num1, num2);
system("pause");
return 0;
}
运行结果:
为什么这里要用到指针呢?因为形参是实参的拷贝,形参的改变不影响实参
3.判断闰年
void IsLeapYear(int year) {
if (year % 4 == 0 && year % 100 != 0) {
printf("%d年是闰年\n", year);
}
if (year%400 == 0) {
printf("%d年是闰年\n", year);
}
else{
printf("%d年不是闰年\n", year);
}
}
int main() {
int year = 2001;
IsLeapYear(year);
system("pause");
return 0;
}
运行结果:
int main() {
int year = 2000;
IsLeapYear(year);
system("pause");
return 0;
}
运行结果:
4.判断一个数是不是素数
void IsPrime(int num) {
int i = 0;
if (num < 2){
printf("%d不是素数\n", num);
}
for (i = 2; i < num; i++) {
if (num%i == 0){
printf("%d不是素数\n", num);
break;
}
else{
printf("%d是素数\n", num);
}
}
}
#include<stdio.h>
#include<stdlib.h>
int main() {
int num = 0;
IsPrime(num);
system("pause");
return 0;
}
运行结果:
#include<stdio.h>
#include<stdlib.h>
int main() {
int num = 4;
IsPrime(num);
system("pause");
return 0;
}
运行结果: