您的位置:首页 > 编程语言 > C语言/C++

用C语言写函数,分别实现完成两个数的交换、判断闰年、判断素数

2019-03-28 22:31 204 查看

将之前讨论过的问题用函数实现,包括:交换两个数、判断闰年及判断素数问题。
1、完成两个数的交换。
重点:因为形参是实参的一份拷贝,所以直接对形参操作不能影响实参的值,必须要通过传指针的方式,通过间接访问操作来修改函数外的变量。
实现代码:

#include<stdio.h>
#include<stdlib.h>
void Swap(int*x,int*y) {
int tmp = *x;
*x= *y;
*y= tmp;
}
int main() {
int a = 5;
int b = 15;
Swap(&a,&b);
printf("%d %d\n", a, b);
system("pause");
return 0;
}

运行结果:

2、判断一个年份是不是闰年。
这个问题比较简单,记住闰年的判断条件就不难实现。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int IsLeapYear(int year) {
if (year % 4 == 0 && year % 100 != 0) {
return 1;
}
if (year % 400 == 0) {
return 1;
}
return 0;
}
int main() {
int year;
printf("请输入一个年份:\n");
scanf("%d",&year);
int a= IsLeapYear(year);
if (a == 0) {
printf("%d年不是闰年\n", year);
}
else if (a == 1) {
printf("%d年是闰年\n", year);
}
system("pause");
return 0;
}

运行结果:

3、输入一个数,判断是不是素数。
重点:写代码时不能只考虑输入正常的情况,包括输入为0、1和负数的情况也需要考虑。
实现代码:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int IsPrime(int num) {
if (num <= 0) {      //用户输入的数不合法
return 0;
}
if (num == 1) {
return 0;
}
for (int i = 2; i < num; ++i) {
if (num%i == 0) {
return 0;
}
}
return 1;
}
int main() {
int num;
printf("请输入一个数:\n");
scanf("%d",&num);
int a=IsPrime(num);
if (a == 0) {
printf("%d不是素数\n", num);
}
else if (a == 1) {
printf("%d是素数\n", num);
}
system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: