当前位置: 首页 > news >正文

C语言 函数

时间:2024.11.10-11.11

一、学习内容

1、什么是函数

函数:程序中独立的功能。将反复书写的代码,又不确定什么时候回用到的代码打包起来。

2、函数的基本格式

函数的定义格式(写在main函数外)

void 函数名()
{
函数体;
}

函数里的代码不会主动运行,如果想要使用函数,必须进行函数的调用。

函数的调用方式

函数名();

3、带有形参的函数(只定义不赋值)

//问题:书写代码时,相加的数字不确定
void sum()
{int a=10,b=20;int c=a+b;printf("%d\n",c);
}//改进:只定义不赋值
void sum(int a,int b)
{int c=a+b;printf("%d\n",c);
}//调用
sum(10,20);

4、带有返回值的函数

//改进:只定义不赋值
void sum(int a,int b)
{int c=a+b;printf("%d\n",c);
}//调用
sum(10,20);问题:打印的结果没有交给调用处,而是直接输出到了打印台//改进:加上return关键字,将void改为int,void表示没有返回值,int...与返回值类型对应
//作用:1.结束函数   2.把后面的数据交给调用处
int sum(int a,int b)
{int c=a+b;return c;
}

#include<stdio.h>
int sum(int a,int b){
int sum=a+b;
return sum;}int main(){
int c=sum(93,10);
int d=sum(87,9);
if(c>d){
printf("小慧慧总分更高");}
else if(c<d){
printf("小丹丹总分更高");}
else if(c>d){
printf("两个人总分一样高");}return 0;}

使用函数的好处:

1、提高了代码的复用性

2、提高了代码的可维护性 

5、定义函数的终极绝杀

三个问题:

1.定义函数,是为了干什么事情?         函数体

2.干这件事情,需要什么才能完成?     形参

3.干完了,调用处是否需要继续使用?  返回值类型

需要继续使用 , 必须写;不需要返回,用void

6、函数的注意事项

 

7、C语言中的常见函数(math.h、time.h)

函数查询访问网站

http://zh.cppreference.com 

math.h:pow()    幂sqrt()   平方根ceil()   向上取整(进一法)floor()  向下取整(去尾法)abs()    绝对值time.h:time()   获取当前时间
//形参:表示获取的当前时间是否需要在其他地方进行存储一般来讲,不需要在其他地方进行存储的,NULL(大写)time(NULL);
//返回值:long long类型
//结果是什么呢?
//从1970年1月1日 0:0:0开始过了...秒的那个时间点
long long res = time(NULL);
printf("%lld\n",res);

8、随机数

 随机数<stdlib.h>   standard library 标准库

获取随机数
1.设置种子 srand()初始值,因为每一个随机数都是通过前一个数字再结合一系列复杂的计算得到的2.获取随机数int num= rand()3.输出打印
#include<stdio.h>
#include<stdlib.h>int main(){
//设置种子
srand(time(NULL));
//获取随机数
int num=rand();
//输出打印
printf("%d\n",num);return 0;
}

 TIPS:x想要获取多个随机数,可以多次执行rand(),可以将rand()放入循环体里

9、随机数的两个小弊端

随机数结果固定的解决方案:让种子不固定

让一个变化的数据去充当种子    时间

srand(time(NULL));

TIPS:

如果忘记设置种子了,代码不会报错,程序默认的种子是1

绝招:用于生成任意范围之内的随机数

1.把这个范围变成包头不包尾,包左不包右的

举例:目标范围1-100

           实际设置1-101

2.拿着尾巴 - 开头  101-1

3.修改代码

#include<stdio.h>
#include<stdlib.h>int main(){
//设置种子
srand(time(NULL));
//获取随机数
int num=rand()%100 +1;
//输出打印
printf("%d\n",num);return 0;
}

二、练习

1、练习1-两数之和

#include <stdio.h>
void sum()
{int a=10,b=20;int c=a+b;printf("%d\n",c);
}int main(){
sum();return 0;
}

 2、练习2-带返回值的函数练习

#include<stdio.h>
int sum(int a,int b,int c)
{  int sum=a+b+c;return sum;}
int main(){
int sum1=sum(10,20,15);
int sum2=sum(20,30,17);
int sum3=sum(19,17,20);
int sum4=sum(23,21,19);
int arr[4]={sum1,sum2,sum3,sum3};
int max=0;
for(int i=0;i<4,i++)
{if(arr[i]>max)
{ max=arr[i];}}
printf("%d\n",max);
return 0;
}

2、练习2-猜数字小游戏

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main() {//设置种子srand(time(NULL));//获取随机数int num = rand() % 100 + 1;int n;for(int i=1;i<100;i++){scanf("%d", &n);if (n == num) {printf("你猜对了\n");break;}else if (n > num) {printf("你猜大了\n");}else if (n < num) {printf("你猜小了\n");}}return 0;
}

三、知识点和小技巧

1.如何查看函数的原型(定义)

按住ctrl键不放,用鼠标左键放在函数名上,再点击函数名

TIPS:方法和keil查看头文件的类似


http://www.mrgr.cn/news/70397.html

相关文章:

  • MCSA --- make coding simple again
  • 【java基础】微服务篇
  • Linux:文件管理(二)——文件缓冲区
  • 【Spring源码核心篇-03】精通spring的aop的底层原理和源码实现
  • 《深入理解 Spring MVC 工作流程》
  • python爬取小说内容
  • mysql:解决windows启动失败无报错(或长时间未响应)
  • c++11(一)
  • 怎么查域名的交易价格?
  • 教育行业该怎么使用电子合同:降本增效,引领教育新未来
  • 如何提升自媒体发稿效果,必须掌握的几个技巧
  • 机器学习—多个输出的分类(Optional)
  • 2024数字化观察:你所需了解的8件事
  • monkey-安卓稳定性测试
  • 【语言建模】数据集合集!
  • 应用于新能源汽车NCV4275CDT50RKG车规级LDO线性电压调节器芯片
  • 【漏洞复现】用友 U8 OA getSessionList.jsp 敏感信息泄漏漏洞
  • 2024年最新项目管理工具推荐:哪些支持自动化测试?
  • 2024年12月一区SCI-加权平均优化算法Weighted average algorithm-附Matlab免费代码
  • 专题十——字符串
  • 网络安全之SQLMAP _DNS注入配置方法
  • MySQL初学之旅(2)增删改查—上
  • 基于微信生态的开源 AI 智能名片 2+1 链动模式 S2B2C 商城小程序源码拉新策略研究
  • linux内存管理学习笔记
  • 制造业怎么用好仓库管理系统?仓库管理系统在制造业中的应用实例
  • Python __del__()销毁对象