C语言的几个入门关于函数调用练习

1.找素数(素数:除了1和本身之外不能被任何整数整除的的数)(被某数整除=除以某数是整数)

问题:输出2到200(包括2和200)的使有素数,从小到大排序。
思路:检查所有比i小的数,取余。
涉及的知识点:函数的传值调用,循环语句等

#include <stdio.h>
int num(int r) {
	int j = 0;
	for (j = 2; j < r; j++) {
		if (r%j  == 0)
			return 0;
	}
	return 1;
}
int main() {
	int i = 0;
	for (i = 2; i <= 200; i++) {
		if (num(i) == 1) {
			printf("%d%s\n", i, "是素数");
		}	
	}
	return 0;

2.写一个函数判断一年是不是闰年

思路:闰年:普通年能被四整除,不能被100整除的为闰年,或者世纪年能被四百整除的是闰年

#include <stdio.h> 

int is_leap_year(int j) {
	if (j % 4 == 0 && j % 100 != 0 || (j % 400 == 0))
		return 0;
	else
		return 1;

}
int main() {
	int i = 0;
	for (i = 1000; i <= 2000; i++) {
		if (is_leap_year(i) == 0)
			printf("%d%s\n", i, "是闰年");
	}
	return 0;
}

3.写一个函数,实现一个整形有序数组的二分查找

思路:创建一个函数,如果找到值返回索引,找不到返回-1

#include <stdio.h> 
int binaey_search(int key1, int arr1[]) {
	int i = 0;
	for (i = 0; i <= sizeof(arr1); i++) {
		if (key1 == arr1[i]) {
			return 0,i;
		}
		}
	return -1;
}
int main() {
	int arr[] = { 1,2,3,4,5,6,7,8,9 };
	int key = 4;
	int ret = binaey_search(key,arr);//数组arr传参,实际不是传递数组本身,而是仅仅传了第一个数组元素的地址
	if (ret == -1) {
		printf("没有找到所查找的值");
	}
	else {
		printf("%s%d\n%s%d", "找到的值为:", arr[binaey_search(key,arr)],
			"索引是:",ret);
	}
	return 0;
}

4.写一个函数,每调用一次这个函数,将num的值增加1

思路:通过传址调用来实现

#include <stdio.h> 

void Add(int *p){
	(*p)++;
	
}
int main() {
	int num = 0;
	Add(&num);
	printf("%d\n", num);
	Add(&num);
	printf("%d\n", num);
	Add(&num);
	printf("%d\n", num);
	return 0;
}
posted @   1(*^_^*)1小菜  阅读(132)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示