c语言从入门到函数速成(2)

温馨提醒:本篇文章适合人群:刚学c又感觉那个地方不怎么懂的同学以及以及学了一些因为自身原因停学一段时间后又继续学​​​c的学

好,正片开始!

数组

概念:数组中存放的是1个或者多个数据,但是数组元素个数不能为0。  数组中存放的多个数据,类型是相同的。

大白话:其实高中数学的集合没啥区别,差不多就是一个大箩筐,筐内有许多符合该类型的元素

常见的有一维数组和二位数组(别慌一会我带你搞定二维数组)

一维数组的定义:类型    数组名[ 元素个数 ]     eg.int arr[10];

初始化:类型   数组名[ 元素个数 ]  =  { 0 };   eg.int arr[10] = {0};

为了大家能更好地了解一维数组的用处,我就写个代码,让大家了解一下

这里的例子主要是让大家了解一下数组是怎么使用的。

那么在例子中已经出现了scanf和数组,那么我就教给大家如何用数组进行多组输入。

在讲数组的多组输入前我先给大家讲两个知识点:

1.数组的下标是从0开始,而它末尾元素的下标是n-1。

2.数组的长度计算模板:非字符或字符串数组的长度   ->   int  sz = sizeof(arr)/sizof(arr[0]);

                                      字符串或字符数组的长度       ->      int sz = strlen(arr);

          注意:计算  字符串或字符数组的长度 时需要添加头文件#include<string.h>哦

有了这两个前置知识,咱们就可以学习数组的输入了。

模板:for( int i = 0;  i  <  sz(数组长度);i++)

                    scanf("占位符",&arr[ i ]);

}

一维数组的打印模板

for( int i = 0;  i  <  sz(数组长度);i++)

                  printf("占位符",arr[i]);

}

这里其实我不太建议大家直接背模板,这样吧我在讲一下思路

数组的输入输出思路:利用for循环和数组的下标将元素一个一个进行输入或输出,如果不太理解这个思路的小伙伴可以先背模板,因为c语言学到后面,这个思路自然就理解了。


一维数组的基本知识点也就差不多讲完了。

那么我们开始讲二维数组

二维数组的定义

类型  数组名[ 行 ][  列 ] 

二维数组的初始化

类型  数组名[ 行 ][  列 ] ={ 0 };

也许讲到这里,还是会有小伙伴不理解,没事,我们拿游戏来举例子

就拿这个游戏的左上角的坐标来解释,17就是二维数组的行,13就是二维数组的列,所以呢,你也可以把二维数组当成坐标去理解,我可以肯定这样理解没有任何问题的。

当然啦,这里有几个知识点,大家最好记一下。

1.二维数组的行可以省略,但列不能省略

2.二维数组的行和列的下标都是从0开始到n-1结束

3.二维数组是由多个一维数组组成

二维数组的输入和输出

# include <stdio.h>
int main ()
{
int arr[ 3 ][ 5 ] = { 1 , 2 , 3 , 4 , 5 , 2 , 3 , 4 , 5 , 6 , 3 , 4 , 5 , 6 , 7 };
int i = 0 ; // 遍历⾏
// 输⼊
for (i= 0 ; i< 3 ; i++) // 产⽣⾏号
{
int j = 0 ;
for (j= 0 ; j< 5 ; j++) // 产⽣列号
{
scanf ( "%d" , &arr[i][j]); // 输⼊数据
}
}
// 输出
for (i= 0 ; i< 3 ; i++) // 产⽣⾏号
{
int j = 0 ;
for (j= 0 ; j< 5 ; j++) // 产⽣列号
{
printf ( "%d " , arr[i][j]); // 输出数据
}
printf ( "\n" );
}
return 0 ;
}

那么,今天的内容就先到这里啦,希望大家能多去练一练,我们下次再见

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/591813.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

频率和转速转换功能块(CODESYS ST源代码)

1、转速和频率转换功能块 转速和频率转换功能块(CODESYS ST源代码)-CSDN博客文章浏览阅读10次。1、转速/频率常用转换关系转速/频率/线速度/角速度计算FC_200 plc计算角速度-CSDN博客文章浏览阅读3.2k次。https://rxxw-control.blog.csdn.net/article/details/138438864 1、转…

企业计算机服务器中了rmallox勒索病毒怎么处理,rmallox勒索病毒处理建议

在网络技术不断发展的时代&#xff0c;网络在企业中的应用广泛&#xff0c;可以为企业带来更多的便利&#xff0c;大大提升了企业的生产效率&#xff0c;但网络作为虚拟世界&#xff0c;在为企业提供便利的同时&#xff0c;也为企业数据安全带来严重威胁。近期&#xff0c;云天…

C++入门系列-基于范围的for循环(C++11)和指针空值nullptr(C++11)

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” 基于范围的for循环 范围for的语法 在C98中如果要遍历一个数组&#xff0c;可以按照以下方式进行&#xff1a; void TestFor() {int array[] { 1,2,3,4,5 };for (int i 1; i …

VmWare 虚拟机没有网络解决办法

由于最近需要&#xff0c;装了个VM虚拟机&#xff0c;但是突然发现本机有网络&#xff0c;虚拟机却没有网络&#xff0c;更换了虚拟机的网络设置&#xff0c;都尝试过了 都不管用&#xff0c; 最后尝试了这种方法完美解决 还原网络默认设置 首先还原虚拟网络编辑器设置 启动V…

力扣---二叉树的锯齿形层序遍历

给你二叉树的根节点 root &#xff0c;返回其节点值的 锯齿形层序遍历 。&#xff08;即先从左往右&#xff0c;再从右往左进行下一层遍历&#xff0c;以此类推&#xff0c;层与层之间交替进行&#xff09;。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,…

FFmpeg计算图像的SSIM的原理

SSIM算法基于HVS更擅长从图像中提取结构信息的事实&#xff0c;并且利用结构相似度来计算图像的感知质量。 在Z. Wang等人的论文Multi-scale structural similarity for image quality assessment中也提到&#xff0c; S S I M SSIM SSIM算法要好于当时的其它的感知图像质量指标…

Java-I/O-编写程序实现从文件中读取数据

定义一个类FileUtil&#xff0c;在FileUtil中定义一个方法 String readFromFile(File file)&#xff0c;该方法从指定的文件中读取数据&#xff0c;并将读取到的数据以字符串的格式返回。 FileUtil类的接口定义&#xff1a; class FileUtil{ String readFromFile(File file){…

强大而简洁:初学Python必须掌握的14个单行代码

Python的魅力与单行代码的重要性 Python&#xff0c;作为一种高级编程语言&#xff0c;自诞生以来就以其简洁、易读、易学的特性而广受开发者喜爱。其魅力不仅在于其强大的功能和广泛的应用领域&#xff0c;更在于其能够用简洁的代码实现复杂的功能&#xff0c;这种能力在很大…

nodejs实战——搭建websocket服务器

本博客主要介绍websocket服务器库安装&#xff0c;并举了一个简单服务器例子。 服务器端使用websocket需要安装nodejs websocket。 cd 工程目录 # 此刻我们需要执行命令&#xff1a; sudo npm init上述命令创建package.json文件&#xff0c;系统会提示相关配置。 我们也可以使…

matlab绘制时间序列图,横坐标轴如何标注为月-日

Excel表格中有类似于如下 年月日对应的数据 导入 matlab中&#xff0c;为数值矩阵&#xff1b;了解该表格中的时间跨度为从2021年1月2日至2021年12月31日&#xff0c;中间没有缺失&#xff0c;绘图代码&#xff1a; % clear; timespan1[20210102 20211231]; datenn1datenum(da…

Visual studio调试技巧

Visual studio调试技巧 bug是什么&#xff1f;Debug和ReleaseDebugRelease 如何调试VS调试快捷键调试过程中查看程序信息查看临时变量的值查看内存信息查看调用堆栈查看汇编信息查看寄存器信息 编译常见错误编译型错误链接型错误运行时错误 bug是什么&#xff1f; bug的英文释…

用例设计规范示例

一个好的用例设计&#xff0c;可以让任何一个执行测试的测试人员都能够容易理解&#xff0c;好操作、易执行、无歧义。这就需要有一个用例设计规范。 下面是一组用例设计规范的示例。 用例编号命名规范化 用例具有规范的、统一的、唯一的标识&#xff0c;有助于实现对用例的…

VMware | 虚拟机开启摄像头

VMware | 虚拟机开启摄像头 打开主机摄像头功能 首先请确保主机摄像头打开。 若图像显示正常则可以。 确保主机虚拟机USB服务开启 进入系统服务界面&#xff0c;确保 VMware USB … 处于开启状态&#xff0c;如果没开启&#xff0c;将它打开。 开启虚拟机摄像头 在 V…

以信息挖掘为关键技术的智慧校园建设

随着信息技术的快速发展&#xff0c;数据信息资源以井喷的姿态涌现。数据信息的大量涌现给人们带来丰富的数据信息资源&#xff0c;但面对海量的信息资源时&#xff0c;加大了人们对有效信息资源获取的难度&#xff0c;数据挖掘技术正是这一背景下的产物&#xff0c;基于数据挖…

C语言/数据结构——每日一题(分割链表)

一.前言 今天在LeetCode觉得很不错&#xff0c;想和大家们一起分享这道链表题——分割链表&#xff1a;https://leetcode.cn/problems/partition-list-lcci废话不多说&#xff0c;让我们直接进入正题吧。 二.正文 1.1题目描述 1.2题目分析 大致思路&#xff1a;我们可以通过…

手撸Mybatis(二)—— 配置项的获取

本专栏的源码&#xff1a;https://gitee.com/dhi-chen-xiaoyang/yang-mybatis。 配置项解析 在mybatis中&#xff0c;一般我们会定义一个mapper-config.xml文件&#xff0c;来配置数据库连接的相关信息&#xff0c;以及我们的mapperxml文件存放目录。在本章&#xff0c;我们会…

【C++】---模板进阶

【C】---模板进阶 一、模版参数1、类型参数2、非类型参数 二、模板的特化1、函数模板的特化2、类模板特化&#xff08;1&#xff09;全特化&#xff08;2&#xff09;偏特化 三、模板分离编译1、模板支持分离编译吗&#xff1f;2、为什么模板不支持分离编译&#xff1f;3、如何…

《21天学通C++》(第十五章)标准模板库简介

本章简单介绍STL容器、迭代器和算法的基本概念&#xff0c;之后几章会分别详述 1.STL容器 STL容器是STL中用于存储集合数据的组件&#xff0c;它们可以被看作是模板类&#xff0c;允许开发者定义特定类型的容器发&#xff0c;这里按照C11标准分为四类&#xff1a;顺序容器、关…

Vmware虚拟机瘦身及Samba服务不可用问题解决

虚拟机磁盘空间膨胀是一个令人头疼的问题&#xff0c;特别是对许多搞开发的小伙伴。无论是做后台服务、嵌入式还是Android开发&#xff0c;都面临着这个难题。首先&#xff0c;操作系统本身就已占用不少空间&#xff0c;更新安装包&#xff0c;再下载一些开源软件&#xff0c;剩…

leetcode_47.全排列 II

47. 全排列 II 题目描述&#xff1a;给定一个可包含重复数字的序列 nums &#xff0c;按任意顺序 返回所有不重复的全排列。 示例 1&#xff1a; 输入&#xff1a;nums [1,1,2] 输出&#xff1a; [[1,1,2],[1,2,1],[2,1,1]]示例 2&#xff1a; 输入&#xff1a;nums [1,2,3] …