一、知识点回顾总结。

(一)、一维数组,二维数组。

首先,明确数组的定义:数组是一组具有相同类型的变量的集合。数组包含数组名和数组的下标,数组的每个数据项叫做属于元素。定义格式为:(一维数组)数组类型 数组名[下标]; (二维数组)数组类型 数组名[下标1][下标2]。一维数组表示的是一行数据,而二维数组表示的是一个数据表格。注意:1.定义数组时,元素个数一定为常量。2.C语言中数组的下标都是从0开始的。3.数组定义完成后大小不能改变。4.定义的范围要稍大一些,防止下标越界。

数组初始化可直接赋值,eg:int score[5]={90,80,70,100,95}或int score[]={90,80,70,100,95}或static int score[5]。数组定义但未进行初始化的数组仍然是随机数。数组一般不初始化。数组的赋值用循环语句,不能直接赋值。注意:要保证输入合法,程序则能运行,若输入不合法,则跳出循环。

(二)、字符数组。

字符数组需要调用这个投文件。初始化有两种形式,即:char chr[5]={‘a’,‘b’,‘c’,‘d’,‘e’};或char chr[5]=“abcd”;其中,字符串中包含五个元素,即在字符串后面有一个’\0’。

字符数组的输入:1.scanf("%s",字符数组名),对于scanf语句得到的字符串不存在空格,空格作为两段字符串的分隔符。2.gets语句输入gets(字符数组名),输入一个字符串,可包含空格,遇到回车终止。3.puts语句:puts(字符串名字),输入一个字符串和一个换行符。

(三)、扩充知识点。

1.关于memset的用法,首先要调用投文件,格式memset(数组名,被赋的值,sizeof(数组名)),其中,被赋的值只能是0过-1,若输入其他的值则错误。bool数组只占用一个字节,节省内存,只有两个值0个1或者两个状态true和false。a[j]=!a[j]是取值取反的意思。inta为给定数组的首地址。sprintf(s,"%d",x)是将整数x转化为字符s。

2.有关查找方法:较为普通的是顺序查找,即从前往后逐一查找。二分查找是:使用三个指针,将一组数据先有序排列起来,三个指针分别位于数据的首位,末位和中间,判断所要查找的数与中间的数的大小关系,如果大于中间的数则首位指针移动到中位的后一位,中位的指针再移动到后半部分的中位,反之亦然,以此类推,直到找到这个数,或者末位指针小于首位指针则结束程序。

3.筛法求素数eg:输出1到100的素数。从2开始判断,2是素数,则2的倍数均不是素数,筛掉;3是素数,3的倍数都不是素数,筛掉;4是2的倍数,已经判断过了;再继续判断5……以此类推。

二、方法总结。

当数据量较大,且关联性不强时,用多个字母定义变量,显然很费时费力,这时候就用到了数组,定义一个可以将所有的同种类型变量放进去的数组,然后用循环语句输入,就缩短了代码长度,使输入更加简洁。当需要输入的一行数字位数过多时,此时用long long或着int定义占用空间过大,用int定义甚至会出现越界的情况,此时可以使用字符数组定义,将这一行数看成字符串。

举例:题目计算鞍点:给定一个55的矩阵,每行只有一个最大值,每列只有一个最小值,寻找这个矩阵的鞍点。鞍点指的是矩阵中的一个元素,它是所在行的最大值,并且是所在列的最小值。例如:在下面的例子中(第4行第1列的元素就是鞍点,值为8 )。

11 3 5 6 9

12 4 7 8 10

10 5 6 9 11

8 6 4 7 2

15 10 11 20 25

思路:由于是一个二维表格,则使用二维数组定义,将表格输入。写两重循环,第一重循环控制行数变化,第二重控制列数变化。开始先让行数不变,改变列数,找出某一行的最大值,并记录位置。找到某一行最大值哪里列,从上往下找这一列最小值,并判断某行最大值与该列最小值是否为同一个数,若相同输出,不相同则继续执行循环,直到全部遍历一遍后没有找到则输出not found。

代码实现:

#include

using namespace std;

int main()

{

int max,min;

int n1,n2,m;

n1=0;n2=0;m=0;

int a[5][5];

for(int i=0;i<=4;i++)

{

for(int j=0;j<=4;j++)

{

cin>>a[i][j];

}

}

for(int k=0;k<=4;k++)

{

max=a[k][0];

for(int l=0;l<=4;l++)

{

if(a[k][l]>=max)

{

max=a[k][l];

n1=k;

n2=l;

}

}

min=max;

for(int t=0;t<=4;t++)

{

if(a[t][n2]<=min)

{

min=a[t][n2];

n1=t;

}

}

if(minmax)

{

m++;

n1+=1;n2+=1;

cout<<n1<<" “<<n2<<” "<<max<<endl;

break;

}

else

m+=0;

}

if(m0)

cout<<“not found”<<endl;

return 0;

}

1.《字符型数组如何输入 字符数组输入需要地址符吗?》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《字符型数组如何输入 字符数组输入需要地址符吗?》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/keji/3302797.html