学习C(七)

数值传参

#include<stdio.h>

int func(int x,int y){
	//int x = a, y = b;
	printf("a + b = %d\n",x+y);
	x++;
	return x;
}

int main(){
	int a = 3, b = 4;
	a = func(a,b);//此处参数列表的作用:读取实参a,b的值,并且分别将他写入到形参x,y中去。把函数返回值赋值给a
	printf("a + b = %d\n",a+b);
	return 0;
}

在这里插入图片描述

地址传参

地址传参的目的是为了同步数据

#include<stdio.h>

/*
函数名:func
函数参数:int* pa,int* pb
函数返回值:void
函数功能:把传进来的地址里面的数据+1
*/
void func(int* pa,int* pb){
	(*pa)++;
	(*pb)++;
	//pa就是&a,所以 *pa就是a本身
	//pb和b同理
}

int main(){
	int a = 2,b = 3;
	func(&a,&b);
	printf("%d %d\n",a,b);
	return 0;
}

输入:2 3
输出:3 4

休眠函数sleep

/*
	在主函数中,循环产生2个随机数,并且在循环内部,通过调用函数计算这两个随机数的和
	如果觉得数据刷新太快,不便于查看结果,可以在每一次循环结束之前,使用函数sleep(n),来是程序休眠n秒
*/
#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
#include<time.h>

void func(int xa,int xb){
	printf("%d\n",xa+xb);
}

int main(){
	srand(time(0));
	while(1){
		int a = rand()%100;
		int b = rand()%100;
		func(a,b);
		sleep(1);
	}
	return 0;
}

计算1~100内所有质数之和

/*
	封装函数,实现功能:使用函数判断传入的参数是否为质数。
	然后调用该函数,求出1~100所有质数的和
*/
#include<stdio.h>

/*
函数名:func
函数参数:int num
函数返回值:不是质数返回0,是质数返回该质数的值
函数功能:判断一个实数是不是质数
*/
int func(int num){
	int i = 0;
	if(num==1){return 0;}//1不是质数
	for(i=2;i<num;i++){
		if(num%i==0){
			return 0;
		}
	}
	return i;
}

int main(){
	int i = 0;
	int res = 0;
	for(i=1;i<=100;i++){
		res = res + func(i);
	}
	printf("%d\n",res);
	return 0;
}

统计一个函数被调用了几次

#include<stdio.h>
/*
	设计一个函数func:该函数能够准确的统计自身被调用的次数。
	然后在主函数中调用若干次func,并且最终打印出总共调用了几次func
*/
void func(int* count){
	(*count)++;
}

int main(){
	int count = 0;
	func(&count);
	func(&count);
	func(&count);
	printf("%d\n",count);//调用了3次func,此时count的值为3
	return 0;
}

设计容器添加、移除数据

#include<stdio.h>
/*
	编写一个界面,界面中只有两个功能:
		假设存在一个容器。
		功能一:向容器中添加1个数据
		功能二:从容器中移除1个数据
	在反复执行若干次功能一和功能二后,打印当前容器中还有多少数据
*/

void func(int count){
	printf("当前数据数量为:%d\n",count);
}

/*
函数名:insert
函数参数:int* count-指向容器的指针
函数返回值:void
函数功能:向容器添加一个数据,容器的值+1
*/
void insert(int* count){
	printf("添加数据成功\n");
	(*count)++;//注意:++的优先级比*的优先级要高
	func(*count);
//在insert函数中,再次调用一个函数func,
//这个函数啥都不干,仅仅打印当前容器数据数量
}

/*
函数名:Remove
函数参数:int* count-指向容器的指针
函数返回值:void
函数功能:当容器等于0时结束,否则容器的值-1
*/
void Remove(int* count){
	if(*count==0){return;}
	printf("移除数据成功\n");
	(*count)--;
}

int main(){
	int count = 0;//容器
	int ch = 0;
	while(1){//一般设计界面时候都用循环while(1),条件满足退出
		printf("1:添加数据\n");
		printf("2:移除数据\n");
		printf("3:打印当前数据数量\n");
		printf("请选择:");
		scanf("%d",&ch);
		while(getchar()!='\n');
		switch(ch){
			case 1:
				insert(&count);
				break;
			case 2:
				Remove(&count);
				break;
			case 3:
				printf("当前数据数量为:%d\n",count);
				break;
			default:
				break;
		}
        printf("\n");
	}
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值