从0开始学c语言-06-选择语句、循环语句、函数、数组

本人0基础开始学编程,我能学会的,你也一定可以,学会多少写多少。

下载安装请从官网入手,社区版本即可,这里主要使用的软件是VS2019,图标如下。

目录

选择语句

循环语句

实现循环的三种语句

今天我们只讲while语句

函数

我有三点建议,

函数的作用

数组

什么是数组?

数组下标

反骨天性的我又来了

整型数组和字符数组的区别

整型数组

字符数组

对比代码

总结


选择语句

想一想在你做选择的时候会遇到什么

1.要有问题

2.要有选项

3.要有结果

现在我们写一个你喜不喜欢秋天的选择语句

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int aqiu = 0;  //定义一个局部变量
	printf("你喜欢秋天吗?(喜欢扣1,不喜欢扣2)\n");  //进行选择引导
	scanf("%d", &aqiu);  //对局部变量进行输入赋值,你自己输入的
	
    if (aqiu == 1)  //如果局部变量aqiu等于1,注意是两个等于号
	{
		printf("那么你一定也很喜欢我\n的名字"); //那么就打印这段话
	}

	else  //否则
	{
		printf("真是令人遗憾,秋天多好的季节~"); //就打印这段话
	}
	return 0;
}

有没有看出什么问题?

我建议你多看看哦~

揭晓答案

 你看,你规定不喜欢扣2,但是你对于除了1之外的情况都是同样的输出结果,所以我们还需要改一下。

注意看else那行

这次你输入其他不相关的值就没结果了,那是因为输入没有你提供的选项,便直接回到return 0 这里了。

不好意思,我一定要输出一下这个结果,因为我真的很喜欢秋天~

选择语句就到这里,有什么想尝试的自己再试试。(提示,else里面再套几个else if

循环语句

实现循环的三种语句

1.while语句

2.for语句

3.do……while语句

今天我们只讲while语句

int main()
{
	int sz[6] = { 1,2,3,4 };   //用int类型创建了名为sz的数组,且数组有6个元素
	int i = 0;    //用ine类型创建了局部变量i
	while (i < 8)  //当i小于8的时候
	{
		printf("%d\n", sz[i]);  //打印数组当中第i个元素
		i++;  //i加1
    //这时候如果i还是小于8就会继续这个括号内的进程
    //直到i不小于8就会跳出循环,也就是i=8

	}

	return 0;
}

大家先猜猜结果是多少

我猜啊结果是1,2,3,4,0,0,随机值,随机值

因为sz数组中只有六个元素,如果打印sz[6]的话就没有对应的值了。

用fn+f10进行调试的话,可以看到数组当中元素的具体情况

 可以看到只有六个元素,剩下两个是0

现在我们来验证一下我的猜想

 OK,如结果所示,后面两个的确是挺奇怪的值。

循环就是这样实现的,其他怎么用,我们之后在讲。

函数

 函数,数学都学过吧

f(x,y)=……之类的,我们用两段代码来展示一下函数的作用

int main()
{
	int a = 2;
	int b = 5;
	int sum = 0;
	scanf("%d%d", &a, &b);
	sum = a + b;
	printf("%d\n", sum);
	return 0;

}

这是一段普通的对a和b进行赋值后,相加打印的代码

现在我们对相加这个过程所进行的运算定义成函数

就像这样子

int pp( x, y)
{
	int z = 1;
	z = x + y;
	return z;  //大家对返回值的理解是什么呢?
}  //定义了一个名为pp的函数,括号内代表此函数的运算过程和结果

int main()
{
	int a = 0;
	int b = 0;
	scanf("%d%d", &a, &b);
	int sum = pp(a, b);  //注意,这里直接等于了函数pp,并把xy进行了ab的赋值
	printf("%d\n", sum);
	return 0;
}

这里不展示运行结果了,

我有三点建议,

1.函数定义中改为 return x;

2.函数定义中改为 return y;

3.函数定义中改为 return 任意数字;

大家照着这样运行一下就知道返回值的作用了。

函数的作用

简单一点,就是能够让大家不重复输入同样的运算过程,而是直接赋值进行函数的运算。

数组

在前面的章节中已经讲过数组初始化这个东西,这里放上链接,大家没学的去补一下

从0开始学c语言-04-神奇的\0、数组初始化、求字符长度_阿秋的阿秋不是阿秋的博客-CSDN博客

什么是数组?

c语言中的定义是 一组相同类型元素的集合。

int aqiu[4] = { 1,2,3,4 };

就像这样,这是一个整型数组,你申请了4个住宿位,只能定义4个。

特别强调,数组的大小必须是常量,也就是说[ ]里面不能是变量。

数组下标

数组int aqiu[4]={1,2,3,4} aqiu[0] aqiu[1] aqiu[2] aqiu[3]
aqiu数组中的元素 1 2 3 4
下标 0 1 2 3

我们在表示数组当中的元素时候,需要用下标来表示,也就是说aqiu[0]=1,aqiu[1]=2以此类推

我知道,你想问aqiu[4]=?别着急,接下来就给你讲

反骨天性的我又来了

int main()
{
	int aqiu[3] = { 1,2,3,4 };
	printf("%d\n", aqiu[7]);
	return 0;
}

这是一段有问题的代码,你观察观察!

首先

int aqiu[3] = { 1,2,3,4 };

我申请了3个,但是我定义了4个,就会出现警告如图,初始值设定过多

 其次

printf("%d\n", aqiu[7]);

上面定义的数组只有4个元素,虽然我只设定了3个住宿位置。

现在我们用这段代码来验证一下

int main()
{
	int aqiu[4] = { 1,2,3,4 };
	printf("%d\n", aqiu[7]);
	return 0;
}

可以看到警告说得很清楚,我们定义了4个整型元素,也就是16个字节,现在我们用下标7来访问这个数组,也就是说默认这个元素是有8个元素的,就会是32个字节。

不知道字节怎么出来的去看这个文章

从0开始学c语言-02-关于数据类型_阿秋的阿秋不是阿秋的博客-CSDN博客

超出了数组应有的字节范围,且下标也超出了数组本身的0-3下标范围。

进而我们打印出来一个随机值。

也就是说,当你打印超出整型数组定义范围内的元素会打印出一个随机值。

同样道理,当你打印超出字符数组定义范围内的元素会打印出一个?。

整型数组和字符数组的区别

整型数组

需要明确的是,如果你申请了4个住宿位,只定义了2个元素,那么剩下的都会被默认为0

字符数组

而字符数组会把未定义的默认为\0,且在打印的时候,还是放图对比吧

 可以看到,字符数组中的\0不会被打印出来,而是空的。

但是整型数组中默认的0可以被打印出来。

对比代码

int main()
{
	int aqiu[4] = { 1,2,3 };
	char aqiu1[4] = { 'a','q','i' };
	char aqiu2[] = "aqiu";


	printf("%d\n", aqiu[3]);
	printf("%c\n", aqiu1[3]);
	printf("%s\n", aqiu2);
	return 0;
}

大家可以用这个不断修改对照,来明确自己的想法。

如果你没有疑问,那也挺好。

提示:不断修改[ ]中的值或者不进行赋值或者少定义一些元素进行打印,用fn+f10进行调试观察元素什么样子。

不知道怎么监视的去看这篇文章。

从0开始学c语言-04-神奇的\0、数组初始化、求字符长度_阿秋的阿秋不是阿秋的博客-CSDN博客

总结

1.当你打印超出整型数组定义范围内的元素会打印出一个随机值。

同样道理,当你打印超出字符数组定义范围内的元素会打印出一个?。

2.字符数组中的\0不会被打印出来,而是空的。

但是整型数组中默认的0可以被打印出来。

3.数组的大小必须是常量,也就是说[ ]里面不能是变量。

这期没啥特别有趣的,基本是和04那个文章联系在一起的,学习要一步步来,别着急,我们先了解后应用~我能学会的都会写进去!

一起加油!!!!!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340