c语言int用法,c语言是C语言 C教程语言零基础教学04:int和float变量的基本使用

大家好,我是陌尘

那么就直接开始了我们这篇教程学for循环以及冒泡算法

我们先来理解一下什么是“循环”字面意思:但是,C语言的循环和这个有点点不同,c语言中大概就是:重复执行一段特定的代码。且C语言里面的循环有多种方法来实现

常见的有用for和while函数我们这节课只讲for函数使用方法:for(单次表达式;条件表达式;表达式){特定代码;}好了,又到了万众瞩目的分析时间 了(此刻应有bgm)首先 单次表达式,意思就是只会执行一次的表达式(何为表达式?百度啊!!!)

(其实就是类似方程)条件表达式,就是一种条件

只要这个条件是真(条件成立)就执行特定代码

等特定代码执行完才执行末尾的表达式for (int a = 0; a < 100; a++){printf("%d ", a);}这是一个简单的例子,分析一下首先int a = 0;

第一课的知识 申明一个变量a,给他赋值0。a<100;条件表达式,当a<100成立就执行第二行:printf("%d ",a);第一课的知识,输出a和一个空格执行完printf("%d ", a);后,再运行末尾的表达式(a++)何为a++,“++”是自增运算符,使a(++左边的变量)增加1。

运算符是个很重要的东西,可以让你的程序可读性增加!这很重要!百度百科上有个很详细的表,各位有兴趣可以去阅读(自己去百度看)让我们来看看结果结果中,第一个数字为0,末尾为99,证实了末尾的表达式是运行了特定代码后才执行的为什么呢?

7a219968c80166a05ad2df0b8a24ccad.png

且听我一一道来

首先,因为int a=0;所以此时a=0; a<100条件成立,于是就输出了a,如果是先执行末尾的表达式,那结果应该是1 而并非0 2.而最后一个数字是99而并非100,因为a=99输出了后,就执行了末尾的表达式(a++),那么使a=100,a=100自然条件表达式不成立,也就不运行特定代码了!上两行信息量略大,请多看几遍,理解ta,不然很容易混乱ps:过来人的经验好了,讲完for循环,可以开始讲冒泡排序了!冒泡排序,就是你给他一串数字,它按照从小到大的顺序排序起来,冒泡排序是很慢的(所以开发中不推荐使用),但是有助于我们理解排序,所以我们这就用冒泡排序冒泡排序理解很简单,就是你存储了这几个数字后,将第一个和第二个对比,若第二个更大就两个换位,然后第二个跟第三个对比……直到最后一个的上一个和最后一个对比,但是一次对比是对比不完的,所以我们需要双重循环来保证结果的正确性(这也是为什么冒泡排序最慢的原因之一)

2ba2589e80abc606c4de501bc5d7de34.png

但是,这有个难题

排序的数字一般有很多,我们总不能打int a,b,c,d,e,f,g……a1,b1,c1……等等那样定义变量吧

这时候我们就用到一个神奇的东西

数组“数组是用于储存多个相同类型数据的集合。”----百度百科啥意思呢,可以理解为,多个储存相同类型的值的箱子组成起来的柜子

定义数组的方法为: 类型 名字[数量];例如: int a[10];然后a[0],a[1],a[2],a[9]都可以分别用来储存不同的int类型的值啦注意,你定义的数组,例如int a[100],你能访问的只有0-99(100个),a[100]是不行的(数组越界,很麻烦的一个东西,百度走起)

inta[11];for(intget=0;get<10;get++){scanf("%d",&a[get]);//读取数字}inttemp;//定义一个变量来交换for(intj=0;j<10;j++)//用一个嵌套循环来遍历一遍每一对相邻元素(所以冒泡函数慢嘛,时间复杂度高

b6567026214fb5181f812d15347d83ab.png

) {for (int i = 0; i<10 -1 - j; i++)//因为每一趟都可以确定一个数

所以可以减少排序次数,由于j是0-9,所以需要加1{if (a[i]>a[i + 1]) //">"改为"

因为如果a=b,那a的原本的值就丢失了,b=a其实就b=b(废话a[i + 1] = temp;//所以要创建一个变量c(在这里是temp)来储存a的值}}}for (int p = 0; p < 10; p++){printf("%d ", a[p]);//

输出排序后的数组}冒泡算法的重点是比较相邻的两个数

感谢

举报/反馈

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值