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

DAY05 循环嵌套+函数的笔记整理

1.循环嵌套

面试题:

百文百鸡
中国古代 , 有一个人去市场买鸡
公鸡 3 文钱一只
母鸡 2 文钱一只
小鸡 1 文钱三只
这个人有 100 文钱 , 要求买 100 只鸡
请问他可以有多少中买法 , 每种每种买法可以可以公鸡多少只 , 母鸡多少只 , 小鸡多
少只
数学思路
假设 :
公鸡 x
母鸡 y
小鸡 100-x-y
3 * x + 2 * y + (100 -x -y) / 3 = 100;
x + y + (100 - x - y) = 100;
代码思路 :
公鸡取值范围 :0~33
母鸡取值范围 :0~50
小鸡取值范围 :0~100
代码 :
int num = 0;
for(int g = 0; g < 34; g++)
{
for(int m = 0; m < 51; m++)
{
int x = 100 - g - m;
if( 3 * g + 2 * m + x / 3 == 100 && x % 3 == 0)
{
printf(" 公鸡 :%d , 母鸡 :%d , 小鸡 :%d \n",g,m,x);
num++;
}
}
}
printf(" 共有 %d 种买法 \n",num);
鸡兔同笼:
养殖户将鸡与兔子放在同一个笼中 ,该养殖户无法数清鸡的数量与兔的数量 ,但是该养殖户数了腿的数量与头的数量 ,腿60 ,头20 ,请您帮助养殖户计算鸡兔个几何
数学思想 :
: 兔子有 t , 鸡有 j
4 * t + 2 * j = 60;
t + j = 20;
t = 20 - j;
4 * (20 -j ) + 2j = 60;
80 -4j + 2j = 60;
80 - 2j = 60;
80 - 60 = 2j;
20 = 2j;
j = 10;
t = 10;
代码思想 :
鸡的取值范围 :0~20
兔的取值范围 :0~15
int tag = 0;
for(int j = 0; j <= 20; j++)
{
        for(int t = 0; t <= 15; t++)
        {
                if(j + t == 20 && 4 * t + 2 * j == 60)
                {
                tag = 1;
                printf("鸡有:%d , 兔有 :%d \n",j,t);
                }
        }
}
if(tag)
{
printf(" 输入的头与腿数量正确 \n");
}
else
{
printf(" 此题无解 , 头腿数量有误 \n");
}
题目 3:
宇航员去太空 , 发现外星生物两种
生物 A:3 4
生物 B:1 6
因为宇航员过于紧张 , 没有数清 A,B 生活个多少只
但是数清了 , 其头和腿的数量 , 请你帮助宇航员计算 A,B 生物个多少只
循环嵌套结合流程控制语句
break: 跳出当前循环:
for(int i = 0; i < 10; i++)
{
        for(int j = 0; j < 10; j++)
        {
                if(j == 3)
                {
                break;
                }
        printf("%d--%d\n",i,j);
        }
}
continue: 跳过本次循环:
#include <stdio.h>
int main(int argc, char const *argv[])
{
for(int i = 0; i < 10; i++)
{
        if(i == 3)
        {
        continue;
        }
        for(int j = 0; j < 10; j++)
        {
                if(j == 3)
                {
                //continue;
                }
                printf("%d--%d\n",i,j);
                }
        }
return 0;
}

2.函数

作用:

        封装一段代码,使其便于使用

        注意:
                一个功能可以封装一个函数
                定义函数的时候一切以功能为目的,根据功能去定函数的参数和返回值

分类:

        1.库函数 (c 库实现的 )
        不能直接操作内核
        2.系统调用 ( 操作系统实现的函数 )
        可以直接操作内核
        3.自定义函数 (程序员自己实现的函数)
                1,定义
                2,调用

使用步骤:

1, 声明 ( 可有可无 )
语法 :
        extern 返回值类型 函数名 ( 形参列表 );
注意 :
        在函数外声明
        声明函数时可以忽略形参的变量名不写
2.定义:
语法 :
        返回值类型 函数名( 形参列表 )
        {
        函数体
        }
返回值类型 : 返回值的数据类型 , 当函数没有返回值 , 返回值类型为 void( 空类型 )
函数名 : 标识符 , 自定义的
形参列表 : 根据实际情况 , 可有可无 , 多个参数之间使用逗号隔开 , 每个参数有数据类型
变量名编写
函数体 : 封装的代码
return: 结束当前函数
return xxx: 结束当前函数并返回 xxx,xxx 就是返回值
注意 :
一个函数最多只能有一个返回值
同一个源文件中函数名不能重复 (C 语言不支持重载 )
函数不能定义在函数中
定义函数计算 10+1 的结果
void add01()
{
int x = 10 + 1;
printf("x=%d\n",x);
}
定义一个函数计算两数之和
void add02(int x,int y)
{
int sum = x + y;
printf("sum=%d\n",sum);
}
定义一个函数计算 1 + 2 的结果 , 并将结果返回给调用处
int add03()
{
int x = 1 + 2;
return x;
}
定义一个函数判断是否成年 , 成年返回 1, 未成年返回 0
int isCN(int age)
{
        if(age >= 18)
        {
        return 1;
        }
        else
        {
        return 0;
        }
}
3, 调用:
语法 :
调用无返回值的函数
函数名 ( 实参列表 );
调用有返回值的函数
函数名 ( 实参列表 );
变量名 = 函数名 ( 实参列表 );
注意 :
实参列表要与形参列表一致 ( 长度一致 , 顺序一致 , 数据类型一致 )
一个函数可以被调用无数次
只能在函数中调用
:
add01();
add02(1,2);
add02(5,10);
int a = 1;
int b = 9;
add02(a,b);
add03();
int x = add03();
isCN(19);
int y = isCN(20);
int age = 17;
int z = isCN(age);
特殊情况:
多重调用:
        在函数A 中调用函数 B, B 中调用 C,C 中调用 ....
递归:
         在函数中调用该函数 , 会形成循环
 多文件编译与跨文件调用函数

http://www.kler.cn/a/108101.html

相关文章:

  • NUXT3学习日记一(在我git中拉取代码、文件讲解)
  • react 中 FC 模块作用
  • Hadoop(环境搭建篇)
  • RAG综述:《A Comprehensive Survey of Retrieval-Augmented Generation (RAG)》
  • Chromium 中MemoryMappedFile使用例子c++
  • 重新认识HTTPS
  • 前端 : 用HTML ,CSS ,JS 做一个点名器
  • 【知识串联】概率论中的值和量(随机变量/数字特征/参数估计)【考研向】【按概率论学习章节总结】(最大似然估计量和最大似然估计值的区别)
  • C++之左值、右值、std::forward、std::move总结(二百五十)
  • 多线程---wait和notify
  • 闭包和函数柯里化的理解
  • 测开 (Junit 单元测试框架)
  • 【C++】模版进阶
  • UE4/UE5 设置widget中text的字体Outline
  • docker 中给命令起别名
  • pytorch 笔记:index_select
  • Java面试八股文之暑假合集
  • Seata入门系列【15】@GlobalLock注解使用场景及源码分析
  • 面试经典150题——Day24
  • React Router初学者入门指南(2023版)
  • Pytorch代码入门学习之分类任务(三):定义损失函数与优化器
  • 【Qt】绘图与绘图设备
  • C++不能在子类中构造函数的初始化成员列表中直接初始化基类成员变量
  • C++ 运算符
  • Linux touch命令:创建文件及修改文件时间
  • 底层驱动day8作业