- 1、本文档共34页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第十讲数组;数组;1.1一维数组的声明与引用;一维数组的存储顺序;一维数组的初始化;一维数组应用举例;while(cin.get(c))
{if(c!=\n)
if(c==key[ques])
{numcorrect++;
cout;
}
else cout*;
else
{coutScorefloat(numcorrect)/numques*100%;
ques=0; //resetvariables
numcorrect=0;
coutendl;
continue;
}
ques++;
}
system(pause); return0;
}
;运行结果:
acbba
**Score60%
acbad
Score100%
abbda
***Score40%
bdcba
*****Score0%;1.2二维数组的声明及引用;存储顺序
按行存放,上例中数组a的存储顺序为:
;分行给二维数组赋初值
例如:staticinta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
将所有数据写在一个{}内,按顺序赋值
例如:staticinta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
可以只对部分元素赋初值
例如:inta[3][4]={{1},{0,6},{0,0,11}};
intb[3[4]={{1},{5},{9}};
它的作用是只对各行第1列的元素赋初值,其余元素值自动置为0。;例有一个3×4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。
;#includeiostream
usingnamespacestd;
intmain()
{inti,j,row=0,colum=0,max;
inta[3][4]={{5,12,23,56},{19,28,37,46},{-12,-34,6,8}};
max=a[0][0];//使max开始时取a[0][0]的值
for(i=0;i=2;i++)//从第0行~第2行
for(j=0;j=3;j++)//从第0列~第3列
if(a[i][j]max)//如果某元素大于max
{
max=a[i][j];//max将取该元素的值
row=i;//记下该元素的行号i
colum=j;//记下该元素的列号j
}cout″max=″max″,row=″row″,colum=″columendl;
return0;
}
输出结果为
max=56,row=0,colum=3;1.3数组作为函数参数;例:对形参数组的改变会直接影响到实参数组。;注意;但是不能把第二维的大小省略。下面的形参数组写法不合法:
intarray[3][];//不指定列数就无法确定数组的结构
在第二维大小相同的前提下,形参数组的第一维可以与实参数组不同。例如,实参数组定义为
intscore[5][10];
而形参数组可以声明为
intarray[3][10];//列数与实参数组相同,行数不同
intarray[8][10];
这时形参二维数组与实参二维数组都是由相同类型和大小的一维数组组成的,实参数组名score代表其首元素(即第一行)的起始地址,系统不检查第一维的大小。;例使用二维数组名作为函数参数;#includeiostream
usingnamespacestd;
voidRowSum(intA[5][4],intnrow)
{ intsum;
for(inti=0;inrow;i++)
{
sum=0;
for(intj=0;j4;j++)
sum+=A[i][j];
coutSumofrowi
issumendl;
A[i][0]=sum;
}
}
void
文档评论(0)