文档详情

c++4数组、指针、字符串和自定义数据类型.ppt

发布:2017-06-02约1.52万字共83页下载文档
文本预览下载声明
第四章 数组、指针、字符串和自定义数据类型 本章主要内容 数组 指针 动态存储分配 指针与数组 指针与函数 字符串 数组的概念 数组是具有一定顺序关系的若干相同类型变量的集合体,组成数组的变量称为该数组的元素。 数组属于构造类型。 一维数组的声明与引用 一维数组的声明 类型说明符 数组名[ 常量表达式 ]; 例如: int a[10]; 表示 a 为整型数组,有10个元素:a[0]...a[9] 例 一维数组的声明与引用 #include iostream using namespace std; int main() { int A[10],B[10]; int i; for(i=0;i10;i++) { A[i]=i*2-1; B[10-i-1]=A[i]; } for(i=0;i10;i++) { coutA[i ]=A[i]; cout B[i ]= B[i]endl; } } 一维数组的存储顺序 一维数组的初始化 可以在编译阶段使数组得到初值: 在声明数组时对数组元素赋以初值。 例如:static int a[10]={0,1,2,3,4,5,6,7,8,9}; 可以只给一部分元素赋初值。 例如:static int a[10]={0,1,2,3,4}; 在对全部数组元素赋初值时,可以不指定数组长度。 例如:static int a[]={1,2,3,4,5} 例:用数组来处理求Fibonacci数列问题 #includeiostream using namespace std; int main() { int i; static int f[20]={1,1}; //初始化第0、1个数 for(i=2;i20;i++) f[i]=f[i-2]+f[i-1]; //求第2~19个数 for(i=0;i20;i++) //输出,每行5个数// { if(i%5==0) coutendl; cout.width(12); //设置输出宽度为12 coutf[i]; } } 例:用数组来处理求Fibonacci数列问题 一维数组应用举例 循环从键盘读入若干组选择题答案,计算并输出每组答案的正确率,直到输入ctrl+z为止。 每组连续输入5个答案,每个答案可以是a..d。 #include iostream using namespace std; int main() { char key[ ] = {a,c,b,a,d}; char c; int ques = 0, numques = 5, numcorrect = 0; cout Enter the numques question tests: endl; while (cin.get(c)) { if (c != \n) if (c == key[ques]) { numcorrect++; cout ; } else cout *; else { cout Score float(numcorrect)/numques*100 %; ques = 0; // reset variables numcorrect = 0; cout endl; continue; } ques++; } return 0; } 运行结果: acbba ** Score 60% acbad Score 100% abbda * ** Score 40% bdcba ***** Score 0% 二维数组的声明及引用 数据类型 标识符[常量表达式1][常量表达式2] …; 例: int a[5][3]; 表示a为整型二维数组,其中第一维有5个下标(0~4),第二维有3个下标(0~2),数组的元素个数为15,可以用于存放5行3列的整型数据表格。 二维数组的声明及引用 二维数组的声明 类型说明符 数组名[常量表达式][常量表达式] 例如:float a[3][4]; 二维数组的初始化 将所有数据写在一个{}内,按顺序赋值 例如:static int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; 分行给二维数组赋初值 例如:static int a[3][4]={{1,2,3,4},{5,6,7
显示全部
相似文档