找回密码
 立即注册

微信扫码登录

使用验证码登录

搜索
查看: 74|回复: 0

12.第12节课第六章利用数组处理批量数据

[复制链接]

6476

主题

3

回帖

1万

积分

管理员

积分
19556
发表于 2024-4-15 08:48:40 | 显示全部楼层 |阅读模式
我们来看一下二维数组的一个程序的运用,运用运用类型将一个二维数组行和列元素互换。存放到另一个数二位数组中,比如说什么行行列元素互换呢?比如说我们的。它的行呢,就变成它的列的这样一个部分列呢,变成行就行行呢,每行呢的元素呢,变到每列的元素上,每列的元素呢,败到每行的元素上。进行行列的元素互换,我们来看一下这个程序井号includes dd二点hinter main。inta二三等于。

大括号那大括号一二三,大括号四五六in TB三二ig。print.array a.反斜杠n for I=0 I小于1I加加我们先呢处理a数组中一行的各元素。那么后面呢?在这在这里面呢?还有这样一个内存循环。for j=0 j,小于等于2g,加加处理处理a数组元素中,每一列中各数组元素。然后呢?printf百分号。5 dai j输出这样一个数组a中的这样一个元素的值。

并且呢,将aij赋给aji,那么就是将a数组元素的值呢?赋给b数组相应元素,那么a数组的第I行第j列的这个元素呢?赋给BD j行第I列的这样一个元素。将a数组元素的值呢赋给b数组相应的元素。那么最后呢?接下来呢?printf返程in printf hour b这样一个部分返程in for I=0 I小于等于2I加加。处理b数组中,一行中各元素for j=0 I,小于等于1g,加加处理b数组中一列的各元素那么进行输出printf百分号5d。big那么输出b数组的一个元素printf返型in retarding,

那么我们来看一下。这个程序的运行结果我们输入我们的a呢?这个数组呢?是我们赋予的初值一二三四五六。那么,我们b的这样一个数组呢?进行行列的互换之后呢?就变成了一四二五三六,它的每一它的每一列呢?那么就是原就是a的这个每一行的值那么?它的一行呢,就是a的这样一个一列的,这样一个值它的行列呢,进行一个互换,那么就是这样一个行列互换的这样一个方式。

那么,这是用二维数组了,那么进行一个行列互换的这样一个方式。好吧,我们再来看一下,有一个。三×4的矩阵要求编程序输出,其中最大值的那个元素的值以及其所在的行号和列号。那么,我们来看一下怎么样来找到这样一个?其元,其中值最大的那个元素的值以及其其所在的行和列号了,那么我们首先看一下我们呢,依然是井号interludes dd二点hin term,后面是我们的函数体,

我们看一下函数的功能部分。inti j row=0,column=0,max,这是定义我们的这样一个整型变量,那么并为我们的row和column呢赋予初值零。inta三四等于我们的一二三四九八七六负十负十负五二,那么负十是负五二,那么这是为我为我们的。数组a呢?二维数组a呢?进行初始化,进行赋初值,接下来呢?令我们的a零零。

等于max把a零零呢赋给我们的max这样一个变量,那么接下来呢,我们开始来找来来来找我们。来找最大的这样一个元素的值,以及它所在的行号和列号。那么for循环for I=0 I小于等于2I加加for j=0 j小于等于3j加加if aig大于。大于max,那么如果我们数组的某个元素呢?它的值呢?大于我们的max,那么就是最先呢?a零零它的值呢?赋给了max的这样一个值的,这样一个值的,这样一个大小的,

这样一个部分,那么如果大于这个max呢?那么就把我们的aig这个一个元素的值呢?赋给max。再把它的行号呢赋给我们的肉,再把它的列号呢赋给我们的,括那么就绩效。使元素的行号和列号,并且呢。用这样一个元素的值呢?取代max的值,那么就是我们这样一个找到的方式,我们I从零变到2j,从零变到三,那么我们就可以呢?

找到我们数组元素中的数组中的这些元素的值呢?进行一个选择运用的这样一个比较的,这样一个部分,那么最后呢,我们printf max等于这样一个百分号d返程rnr等于百分号d返程rn或能等于百分号d返程rn。max row column,那么我们最后呢,就找到了这样一个最大值的,这样一个元素元最最大。这段数组中最。最大值的这个元素的最大的这个元素的它它的值。它的数值,它最大的这个数值呢?它的元素,它的这样一个部分,

它的这样一个值的部分,然后呢?以及它的行号和列号,最后呢?return 0函数返回一个零值程序结束。那么我们看一下。程序运行的结果max。等于十肉等于二或者等于一,那么这就是我们程序运行的结果,我们每我们进行一个比较,那么如果这个圆,我们先将我们的一个元素呢?最开始的这个数组元素呢,将它的值呢赋给max,然后呢?

进行。找在我们的数组中呢,开始找找到这些元素呢,与它进行比较,然后呢?进行一个。判断这样一个值呢,是否是否大于那么这样一个原来的这样一个值,那么最后呢?那么找到我们要,我们就要找到那个那个元素,它的值呢?与它的这样一个。位置那么这是我们。找到其中值最大的元素的这样一个方式。

我们接下来我们再看一下字符数组。字符数组呢,是用来存放字符数据。也就是说,存放字符数据的数组呢?是字符数组在字符数组中呢?一个元素类呢?存放一个字符,比如说我们这里的恰c10,那么就是定义一个字符数字符数组。它有十个元素,它从零呢,它的下边呢,从零到九,那么我们可以呢,

为这些数组元素呢,赋予赋值,比如说。把I赋给我们的c0。好,我们的。一个空格赋予给我们的c1,那么这样一个赋值的这样一个赋方式,那么大家注意我们在赋值的时候呢?我们对字符呢?字符我们需要呢,采用单引号来表示,而我们的字符串呢,我们需要采用双引号来表示,这里大家要注意它们的这样一个使用的方式。

字符呢,是采用单引号的方式来进行使用,而我们的字符串是采用双引号的形式呢,来进行使用。那么,我们的由于字符型数据呢?是以整数形式AC根宝存放的,因此呢,也可以用整型数组。来存放字符数据,比如说in tc 10,然后呢,把字符a呢赋给c0,那么这样呢,也是可以的。

那么,对字符数值初始化,那么我们可以呢?用初始化列表把各个字符呢?依次赋给数组中各元素,比如说。ch恰c10等于后面的大括号,后面的这些数字符把十个字符呢依次赋给c0到c9这十个元素,如果在定义字符数值时呢,不进行初始化。好吧,我们这我们就不能够。确定我们数字中的各元素的值的这些部分,这些内容,如果花括号提供的数值个数呢?

大于数值长度就出现语法错误。如果初值个数呢?小于数组长度,则只将这些字符呢赋给字数组中前面的那些元素。其余的元素呢,自动定为空字符,就是我们的反斜杠n反斜杠零,比如说我们呢?可以这样一个定义一个。ccharc 10=c program。那么我们的。那么,后面的这些部分呢?那么就是我们其余的元素呢?自动定为空字符,

如果提供的初值个数呢?与预定的数组长度相同呢?在定义时呢,可以省略数值长度,系统呢,会根据初值个数来确定数值长度,那么我们也可以呢,定义和初始化一个二维字符数组,比如说。那么,恰diamond五五那么第一个大括号内呢?写它的这样一个字符,第二个大括号呢?写它的字符那么接下来呢?都可以写它的字符的这样一些部分。

我们来看一下字符串和字符串结束标志,在C语言中呢,是将字符串作为字符数组来进行处理的,在实际工程工作中,人们关心的往往呢是字符串的长度,而不是字符。字符串的有效。长度而不是字符数值的长度,为了测定字符串长的直接长度呢C语言,规定了一个字符串结束标志,以字符反斜杠零作为结束标志。比如说c program字符串是放在一维数组中的,占十个字节字符占九个字节最后一个。字节反倾杠铃呢,是由系统自动加上的c系统,

在字符数组存储,字符串常量时会自动加上一个反倾杠铃作为结束符。在定义字符数组时啊,应该估计实际字符串长度保证数组长度呢,始终大于字符串实际长度。如果在使用一个字符数组中呢,先后存放多个不同长度的字符串,则应使数组长度呢,大于最长的字符串的长度,那么这是我们。字符串和字符串的这样一个使用的这样一个方式,好吧,我们来看一下字符串的这样一个和字符串结束标志的这样一些内容,比如说printf how do you do那么这样一个字符串输出一个这样一个字符?字符串。

那么,在向内存中存储时啊,系统自动的在最后一个字符反斜杠n前面加了一个反斜杠零作为字符串结束标志。在执行printf函数时啊,每输出一个字符,检查一次,看下一个字符为是否为反斜杠零,如果是反斜杠零呢,就停止输出。比如说我们可以这样定义charc,方括号,大括号。双引号I'm happy。或者呢,恰c方括号等于双引号,

I'm happy用一个字符串。作为字符数值的初值,那么大家注意,我们这里的字符串的长长度呢?不是41那么因为字符串常量呢?最后呢,由系统加上一个反斜杠零。那么我们的。加了这样一个反斜杠零的这样一个字符数组了,与我们没有加反斜杠零的这样一个字符数组了,那么它是有这样一个区别的,这样一些这部分那么大家要注意这样一些内容。好吧,没有加加加了反刑案零呢与没有没有加反刑案零呢,那么它是不同的,

这样一个部分,它是有它是不同的,这样一个它是不同的。啊,比如说我们chcharc=c十,等于China数组c的前五个元素呢,是China第二个元素呢为零。后四个元素呢,以自动设为空字符。我们来看一下字符数组的输入输出,那么逐个字符的输入输出呢?格式符呢?用百分号c或者输入或者输出一个字符。将整个字符串一次输入或输出,用百分号s格式符意思呢?

对字符串进行输入输出,比如说我们看看这个程序。型号interludes d nh inter main c叉c 15=im a student in ti for in for I=0 I小于15I加加。printf百分号CC I那么这里呢?是对用我们的格式符呢?百分号c呢?输出我们的一个字符,那么我们每次呢?输出我们字符数中的一个字符的输出字,个字符,串字符数组中的一个字符,那么最后呢,一个反斜杠n。printf返程in retarding函数返回一个零值程序结束,那么我们再看一下这样一个程序引号includes dn hin term。

CC点1 China print百分号s返学nc这里呢,是对字符串进行一次输出,我们用的是百分号s这样一个字格式符。意思呢,是对我们的字符串进行输出,那么最后呢,进行我们的这样一个字符串的这样一个输出部分,那么我们的输出的字符中呢,不包括反斜杠零。用百分号s格式符输出字符串时print函数中的输出项是字符数组名,而不是数组原原数名,那么大家注意。用我们的百百分号s格式符输出字符串的时候呢,我们这里的printf中的函数的输出项的字字符数组名,这里是字符数是字符数组名的可以是字符数组名的,

这样一个部分,而不是数组元素名。如果数组长度大于字符串的实际长度,那么也输遇到也只输出到遇到我们的反斜杠零结束。如果一个字符数组中呢,包含一个以上的反斜杠零,那么则遇到第一个反斜杠零呢,输出就结束。那么,我们来看一下字符数组的输入输出,那么从键盘输入check自动的系统呢?会自动。在我们的China后面,加上一个反斜杠零作为结束符,比如说我们的char cac 6那么定义一个字符数组,

那么我们输入一个字符串scan f百分号sc,那么我们输入一个字符串,那么。在这个字符串呢,我们输入China那么系统呢,会自动在chin后面呢,加上一个反g二零作为结束符。那么,如果用一个。sky f函数呢?输入多个字符串,那么应该在输入时呢?以空格。风格。比如说。

由键盘输入,how are you?那么,由于呢?有空格字符分隔作为三个字符串输入,那么就是第一个号,第一个二,第三个呢u,那么这些部分一个问号。那么我们再看一下这样一个部分,像string一五string二五string三五,我们呢?进行输入的时候呢?sky f百分号s百分s百分s。string 1,

string 2,string 3,那么我们用这样一个sky f呢?输入多个字符串的时候呢?我们在输入时呢?用空格分隔那么用分空格分隔呢?那么就作为了这个how are you呢?就作为了三个字符串进行输入那么?就输入到我们的放在我们的这样一个字符数组当中,那么比如如果我们。由键盘输入。how are you?由于字系统呢,把空格字符呢作为输入的字符串之间的分隔服务,那么因此。

只将空格前的字符号送到string当中,比如说我们定义一个字符数组string STR。string 13 sff百分号s string,那么这样呢?我们在键盘上输入how右?由于由于有一个空格,那么我们只将了空格前面的字符。how how送到存到我们的这样一个string当中,那么这是我们。字符数组的这样一个输入输出的部分,那么我们这里呢?如果我们要从键盘输入的话,那么我们输入how are you?那么我们由于how后面有一个空格,那么系统呢?

把空格字符作为输入的字符串之间的分隔符。因此呢,只将空格前面的字符号送到我们的指定当中,那么大家注意到这样一个部分。那么我们再看一下字符数组的输入输出。sky f中的输入项呢?如果是数组字符,数组名就不需要加地址符,因为在C语言中呢,数组名呢,代表该数组第一个元素的地址,或者说数组的起始地址。如果数组呢?占六个字节数组0c代表地址二零零零。那么我们可以呢,

用这样一个语句来得到数组第一个元素的例子,比如说print百分号o。c用八进制的形式呢?输出我们数组。c的起始地址。那么也可以呢,我们的printf。那么,我们的这样一个printf百分号零,这样一个部分呢?那么,输出我们这样一个数组c的,这样一个起始地址。那么,接下来我们再看一下使用字符串处理函数。

那么,我们使用字符串处理函数呢?那么,我们有输出字符串的函数puts puts的使用方式啊?是puts后面加一个括号,里面写上我们的字符数组。它的作用呢,是将一个字符串输出到终端,用push函数呢,输出的字符串中呢,可以包含转义字符,再用push输出字符串结束标志反斜杠零的时候呢。转换成为我们的返程n,比如说输出完字符后呢,换行我们看一下这个程序。

井号interludes ddi点hinter main char tree=China n返星n北京puts。STR string.r0。那么我们这里呢,函数运行的结果呢,就是China北京,那么这是进行了一个换行的这样一个第一个第一个反向来呢,进行了换行的这样一个部分。那么第二个呢?字符数串进行输出了,那么也是我们的这样一个。将反斜杠零呢换成了反斜杠n,那么进行一个换行,而我们还有了get函数。gets使用的方式呢,

是gets后面加一个字符数组,那么它的方式,它的这样它的这样一个使用这样一个例,这这个方式呢,是gets是dream。它的作用呢,是从终端输入一个字符串呢,到字符数组,并且得到一个函数值,该函数值呢,是我们字符数组的起始地址。比如说我们从键盘输入computer,将输入的字符串呢,送给字符数组STR string。那么我们这里呢,

送回数组的有九个字符,而不是八个字符,返回的函数值啊,是字符数组STR的第一个元素的地址。那么,我们用puts和gets函数呢?一次只能输出或者输入一个字符串啊,下面的这样一个puts stres tr 2或者gets括号strestr 2,那么是错误的,那么是不正确的。用push和get函数呢,一次只能输出一个,或者说输入一个字符串,那么是这样这样一个运用的部分。那么我们还有呢字符串连接函数struct STR cat,

它的这样一个使用方式啊,是STR cat括号。字符数组一,字符数组二,它的作用呢?是把两个字符数组中的字符串连接起来,把字符串二接到字符串一的后面,结果放在字符数组一中。函数调用后呢,得到一个函数值就是字符数组一的地址,那么字符一呢,那么应相应的呢,就应该要大于相应的,就要就要比较大,那么就要大的,

这样一个部分。那么,字符数组一呢?必须足够大,以便容纳连接后的新字符串,连接前两个字符串的,后面呢都有百分号零返问号零。连接时呢,将字符串一后面的反斜杠零去掉,只在新串后呢,保留反斜杠零,比如说我们用这样两个字符串。两个这样一个字符串char顺一三十people,the public of char。string 2 China那么我们使用我们的字符串连接函数print反斜杠百分号s。

刷卡者。STR 1,STR 2这个时候呢,就是将两个字符数组中的这样一个字符串的连接起来,把字符串STR 2呢,接到我们字符串STR 1后面。结果呢,放在我们字符数组STR 1中。那么,连接前呢?两个字符串后面呢?都有我们的反斜杠零连接时呢?将字符串一后面的反斜杠零取消,只保留新串最后的百分号反斜杠零。那么我们看一下我们的这样一个图当中的部分,

连接起来stre呢,是people the republic of后面是我们的反。反斜杠0 STR 2呢是channel。那么连接后呢,就变成了people's public of China,后面是我们的返修幺零,那么我们的输出呢,就printf百分号so csss+1 s+2。那么,输出的部分呢?就是repo republic of China,那么这是我们输出了这样一个字符连接的函数的部分,那么我们还有呢字符串复制函数。字符串复制函数呢,它的使用的方式啊是刷copy。

字符数组一,字符串二,它的使用方,它的这样一个作用呢,是将字符串二复制到。字符数组一中去,那比如说我们来看一下这样一个例子。s char STR 10。是二=channel。struct opiestr 1 STR 2或者struct opie。1 China那么这样一个执行,这样一个字符串复制函数之后呢?那么其实说一呢就变成了。China后面是我们的这样一个反斜杠零,那么就是将我们的这样一个channel呢字符串字符串channel呢,

复制到我们的这样一个stre当中。复将我们的字符串check呢,复制到了我们的这样一个字符数组STR STR 1,这样一个STR 1,这样一个部分。它的作用字符串复制函数的作用呢?是将字符串二复制到字符串一中去。字符数组一呢,必须足够大,以便容纳了被复制的字符串二字符数组一的长度呢,不应小于字符串二的长度。这幅数组一呢,必须写成数组名形式。字符串二可以是字符数组名,也可以是一个字符串常量。

那么,若在赋值前未对数字符数值一初始化或赋值,那么其中各字节的内容无法预知。复制时,将字符串二和后面的反七杠零呢一起复制到字符数组一中,取代字符数组一前面的字符未被取代的字符呢,保有原原内容。不能用复制语句来将一个字符串常量或者字符数组呢,直接给一个字符数组字符数组名是一个地址常量,它不能改变值。我们不不能够呢,直接将这样一个字符串,比如说channel直接。赋给一个。字符数组。

也不能呢,将一个字符数组呢赋给一个字符数组那么。这样呢,那么这样呢,是这样是是不正是不正确的,那么字符数组名呢,是一个常量,它不能改变值。我们可以用strong copy。函数呢?将字符串二中的前n个字符复制到字符数组一中去,将STR 2后面的最前面的两个字符呢复制到STR 1中。取代。原有的前面两个字符,那么但复制的字符呢?

个数n呢?不应该多于。stre中的原有字符不包括这样一个反向二零的,这样一个部分。那么我们再看一下字符串比较函数那么strong compare。字符串一,字符串二,这是它这样一个使用方式,比如说我们的strong compare strcmp。string 1,string 2 strcmp China coral strcmp string 1北京,它的作用呢?是比较字符串一和字符串二。字符串比较的规则呢是两个字符串自左至右逐个字符进行比较,它是对它们的AC勾码的值的大小进行比较,

直到出现不同的字符了,或遇到反斜杠零为止。如果全部字符都相同,则认为两个字符相等,如果出现不相同的字符,则以第一对不相同的字符的比较结果为准。比较的结果呢,由函数值带回,如果字符串一与字符串二相同,则函数值为零,如果字符串一大于字符串二,这函数为一个正整数。如果字符串一小于字符串二,这函数为一个负整数,那么这是我们的函字符串比较函数的部分。

我们还有了测量。字符串长度的函数strlen,它的使用方式是strlen字符数组,它的作用呢?是测试字符串长度的函数。函数的值呢?为字符串中的实际行度,不包括反信号零在内,比如说我们看一下这个程序井号include stu点h井号stu点h是点h。inter main那么这里呢?有一个string点h,那么我们呢?要使用我们的字符串这样一些处理函数,那么它是包含在我们的这样一个string的,这样一个库函数当中。

那么,使用需要用的这样一个。实施的这样一个运用部分,那么我们就要我们可以呢采用。将我们的string h呢那么进行一个声明,那么进行编译处理,把它包含在我们程序当中,接下来是我们的inter main。int呢是函数使用的数据类型函数的返回值,是一个整型v呢,是我们的主函数,那么函数体当中呢是char string。十=channel printf百分号d百分号d返程n strlen。STR strlen China这里呢,是对我们字符串长字符串呢进行测量,

它的长度,比如说对这样一个STR呢测量,它的长度对China呢测量,它的长度。那么,这是对我们的字符串的长度来进行测量,那么这是我们测量字符串长度的这样一个函数。好同学们,今天呢?我们讲过了,我们的。数组的这样一个部分,包括我们的整形数组,包括我们的字符数组,以及我们的一维数组,

二维数组和我们的多维数组。另外呢,我们还讲了我们的字符串的这样一个处理函数,包括我们的输入输出函数,我们的这样一个。测量它的长度以及呢比较以及呢复制那么这样一些函数的部分,那么大家呢自己呢再看一下,那么这样一些讲过的内容,那么大家进行一下了解。进行一下熟悉好,我们今天呢就讲到这里好,谢谢大家。


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|5432考试网 ( 蜀ICP备2022024372号|川公网安备51152402000101号 )|网站地图

GMT+8, 2024-5-19 17:14 , Processed in 0.078695 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表