当前位置: 首页 > 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.lryc.cn/news/482624.html

相关文章:

  • windows中docker安装redis和redisinsight记录
  • itextpdf打印A5的问题
  • qt QUndoView详解
  • python+智谱AI-实现钉钉消息自动回复
  • Kafka-Eagle的配置——kafka可视化界面
  • 【命令操作】Linux上带宽流量监控nethogs命令详解 _ 统信 _ 麒麟 _ 方德
  • 【入门篇】数字统计——多语言版
  • 探索那些现代C++语法糖
  • 【LeetCode】【算法】33. 搜索旋转排序数组
  • Python小游戏25——黄金矿工
  • WPF中Prism框架中 IContainerExtension 和 IRegionManager的作用
  • C++实现用户分组--学习
  • 鸿蒙华为商城APP案例
  • 回首遥望-C++内存对齐的思考
  • 力扣 LeetCode 704. 二分查找(Day1:数组)
  • 【Mode Management】AUTOSAR架构下唤醒源检测函数EcuM_CheckWakeup详解
  • Zabbix基础信息概述
  • SpringBoot(十二)SpringBoot配置redis
  • Pycharm安装
  • OpenAI大改下代大模型方向,scaling law撞墙?AI社区炸锅了
  • 技术整合与生态构建:Lyft与Mobileye引领自动驾驶新纪元
  • 利用huffman树实现对文件A先编码后解码
  • 第三十九章 基于VueCli自定义创建项目
  • 网页web无插件播放器EasyPlayer.js点播播放器遇到视频地址播放不了的现象及措施
  • LLaMA-Factory学习笔记(1)——采用LORA对大模型进行SFT并采用vLLM部署的全流程
  • PHP和Python脚本的性能监测方案
  • C语言实现数据结构之堆
  • 战略共赢 软硬兼备|云途半导体与知从科技达成战略合作
  • python:用 sklearn 构建 K-Means 聚类模型
  • elementUI中2个日期组件实现开始时间、结束时间(禁用日期面板、控制开始时间不能超过结束时间的时分秒)实现方案