第6章 数组《C语言程序设计(第三版)》-电子教案
计算机基础与C语言程序设计(第三版)第6章-数组
![计算机基础与C语言程序设计(第三版)第6章-数组](https://img.taocdn.com/s3/m/1e23317883d049649a665835.png)
m[0][0] m[0][1] m[0][2] m[0][3] m[1][0] m[1][1] m[1][2] m[1][3] m[2][0] m[2][1] m[2][2] m[2][3] m[3][0] m[3][1] m[3][2] m[3][3]
6.2.2 二维数组的存储形式 二维数组在内存中按行存放。
int a[3][2];
a[0][0] a[0][1] a[1][0] a[1][1] a[2][0] a[2][1]
a[0][0] a[0][1] a[1][0] a[1][1] a[2][0] a[2][1]
6.2.3 二维数组的初始化
(3)一维的长度可不指定。 int a[ ][4]={1,2,3,4,5,6,7,8,9,10,11,12};
6.2.4 二维数组的引用 数组名[下标][下标] 如: int x[2][3]; x[0][0]=3; x[1][2]=x[0][0]+5; x[1][2] ++;
6.2.5 二维数组应用举例 【例6.4】 输入一个4×4的整数矩阵,分别求
for(i=0;i<N;i++) printf("%.2f ",a[i]); }
【例6.2】用冒泡排序法对n个数从小到大排序。
对5个数,从小到大排序:
N=5
第一遍选择:
8 6 3 1 2 第一次
6 8 3 1 2 第二次
6 3 8 1 2 第三次
6 3 1 8 2 第四次
6 3 1 2 8 结果
6
3
1
1
3
1
2
2
1
2
3
3பைடு நூலகம்
第六章课件 C程序设计(第三版) 谭浩强 著
![第六章课件 C程序设计(第三版) 谭浩强 著](https://img.taocdn.com/s3/m/08742d7fa98271fe910ef993.png)
第六章 循环控制
第6章 循环控制
概述 goto语句以及用goto语句构成循环 while语句 do-while语句 for语句 循环的嵌套 几种循环的比较 break语句和continue语句 程序举例
C语言程序设计
第六章 循环控制
§6.1 概述
程序中凡涉及求阶乘、累加、排序等问题都要 用循环解决,因为程序中的某一程序段要重复执行 若干次。 C语言实现循环的语句: 不提倡 goto 和if组合 while语句 do while语句 for语句 重点
< >
do-while 循环,循环体至少执行一次; while和do-while可以解决同一问题,两者可以互换。 while后的表达式一开始就为假时,两种循环结果不同。
C语言程序设计
第六章 循环控制
§6.5 for语句
for 语句是 C 语言中最为灵活,使用最广泛的 循环语句,可完全替代while,do-while语句。 一般形式
<
>
/*省略表达式1、3*/ /*省略表达式 1*/ 3*/ main( ) main( ) { int i,sum=0; { int i=1i,sum=0; ; for(i=1;i<=100;) i=1; for(;i<=100;) for(;i<=100;i++) {sum=sum+i sum=sum+i i++;} printf("%d",sum); }
循环终值
循环条件 循环体
C语言程序设计
第六章 循环控制
关于while循环语句:
while循环先判断表达式,后执行循环体。循环体有可 能一次也不执行。 循环体若包含一个以上语句,应该用{}括起来。 循环体应包含有使循环趋向结束的语句; 下列情况,退出while循环 条件表达式不成立(为零) 循环体内遇 break , goto 无限循环 while(1) 循环体 ;
《C语言程序设计(第3版)》电子教案 项目三 设计顺序结构程序
![《C语言程序设计(第3版)》电子教案 项目三 设计顺序结构程序](https://img.taocdn.com/s3/m/5aa3b2aef9c75fbfc77da26925c52cc58ad69051.png)
任务一 了解程序算法
二、了解算法的特征
通常,一个算法必须具备以下五个基本特征: 1.有穷性。一个算法必须在它所涉及的每一种情形下,都能在执行有
限次的操作之后结束; 2.确定性。算法的每一步,其顺序和内容都必须严格定义,而不能有
任何的歧义; 3.有零个或多个输入。输入是算法实施前需要从外界取得的信息,有
goto, return
下一页 返回
任务二 掌握格式化输出/输入
2. 函数调用语句 函数调用语句由一次函数调用加一个分号(语句结束标志)构
成。例如: printf(“This is a C Program.”); 3.表达式语句
表达式语句由表达式后加一个分号构成。 表达式能构成语句,是C语言的一大特色,最典型的表达式语 句是在赋值表达式后加一个分号构成的赋值语句。例如, “num=5”是一个赋值表达式,而“num=5;”却是一个赋值语句。
下一页 返回
任务二 掌握格式化输出/输入
(一)printf()函数的一般格式 printf("格式字符串", [输出项表]); 其中: “格式化字符串”由控制输出格式的字符组成的字符
串。输出表达式表是用逗号分隔的若干个表达式。C语言系统将按 照自右向左的顺序,依次计算“输出表达式表”中诸表达式的值, 然后按照“格式化字符串”中规定的格式输出到显示器上显示。 函数返回值为返回输出数据的个数。
上一页 下一页 返回
任务二 掌握格式化输出/输入
(二)printf()函数格式字符 格式指示符的一般形式为:%[修饰符]格式字符
其中,修饰符与格式字符的具体用法如下: 1.格式字符
printf函数中常用的格式字符如表3-1所示。 2.长度修饰符
C语言程序设计实例教程 第3版教学课件6-2
![C语言程序设计实例教程 第3版教学课件6-2](https://img.taocdn.com/s3/m/016102283069a45177232f60ddccda38376be110.png)
#include "stdio.h" main() {char c[10]={'a','b','c','d','e','f','g','h','i','j'}; /*用10个字母定义10名同学,存放到字符型数组c中*/ char *p; int i; p=c; /*将一维数组名的值赋予指针变量p*/ printf("通过引用数组元素输出本周和下周值日安排\n"); printf("本周顺序为:%c%c%c%c%c\n",c[0],c[1],c[2],c[3],c[4]); printf("下周顺序为:%c%c%c%c%c\n",c[5],c[6],c[7],c[8],c[9]);
实例中,引用第i个数组元素的表达式有c[i]、*(c+i)、*(p+i)、*p[i],表 达式p[i]是通过带下标的指针变量来引用数组元素。它的初始值也是数组 的首地址,这样使用过程中和c用法是相同的。
【课堂精练】
1.定义一个具有10个数组元素,引用指针变量来为各个数组元素赋予一个随机数, 并找出最大值和最小值及其所在的数组元素。程序的运行结果如图6-10所示。
printf("%c",p[i]); getch(); }
实例36 通过指针引用一维数组元素——本周和下周做值日的同学安排
【相关知识】 1. 通过指针引用一维数组
实例中,定义一个指针变量p,当p得到c的值的时候,p指向了 数组的首地址。这时可以通过p来引用各个数组元素。如实例中语句: printf("本周顺序为:%c%c%c%c%c\n",*p,*(p+1),*(p+2),*(p+3),*(p+4));
精品课程《C语言程序》电子教案(全)
![精品课程《C语言程序》电子教案(全)](https://img.taocdn.com/s3/m/aa730064366baf1ffc4ffe4733687e21ae45ff4d.png)
精品课程《C语言程序设计》电子教案(一)一、课程简介1.1 课程背景1.2 课程目标(1)掌握C语言的基本语法和数据类型;(2)熟悉运算符、表达式和语句的结构;(3)掌握函数的定义和调用;(4)了解常用的库函数和头文件;(5)学会使用C语言进行程序设计和调试;(6)培养编程思维和解决问题的能力。
二、教学内容2.1 课程安排本课程共分为五个部分,具体安排如下:第一部分:C语言基础知识(2周)第1周:C语言概述、变量和数据类型第2周:运算符、表达式和语句第二部分:程序控制结构(3周)第3周:顺序结构第4周:选择结构第5周:循环结构第三部分:函数与数组(3周)第6周:函数的定义和调用第7周:数组和字符串第8周:指针第四部分:指针与引用(2周)第9周:指针的应用第10周:引用第五部分:综合练习与课程设计(2周)第11周:综合练习第12周:课程设计2.2 教学方法采用讲授、实验、讨论相结合的教学方法,通过案例分析和编程实践,使学生掌握C语言的基本知识和编程技巧。
三、教学资源3.1 教材《C语言程序设计》,作者:谭浩强3.2 实验环境配置有C语言编译器的计算机实验室,如:Visual Studio、Code::Blocks等。
3.3 网络资源精品课程网站:提供课程讲义、实验指导、习题库、在线测试等功能。
四、课程考核4.1 考核方式课程考核分为过程考核和期末考试两部分,其中过程考核占60%,期末考试占40%。
4.2 过程考核包括课堂表现、实验报告、课后作业和在线测试等。
4.3 期末考试采取闭卷考试的方式,试题包括选择题、填空题、简答题和编程题等。
五、教学反馈5.1 学生反馈学生可通过课程网站、邮件等方式向教师反馈学习过程中遇到的问题和建议。
5.2 教师反馈教师根据学生的课堂表现、实验报告和作业等情况,及时给予反馈和指导。
精品课程《C语言程序设计》电子教案(二)六、第一部分:C语言基础知识6.1 第1周:C语言概述、变量和数据类型教学目标:了解C语言的发展历程、特点和应用领域;掌握基本数据类型、变量定义和初始化。
C语言程序设计实例教程 第3版教学课件6-4
![C语言程序设计实例教程 第3版教学课件6-4](https://img.taocdn.com/s3/m/6b1d1c63dcccda38376baf1ffc4ffe473368fd10.png)
图6-20 程序运行结果
实例40 函数Biblioteka 间传递地址——打印杨辉三角【程序代码】 #include "stdio.h" main() { int a[18][18],n; printf("请从键盘上输入杨辉三角的行数:"); scanf("%d",&n);/*行值由键盘上输入*/ while(n<=1||n>18)/*如果输入的行值不在数组下标范围内,请重新输入*/ {scanf("%d",&n);} getdata(a,n);/*数组名作为实参,调用函数*/ outdata(a,n); printf("输出杨辉三角形为:\n");}
函数名或指向函数的指针变量可以作为实参向形参传递地址值,这就要求 形参也应该是类型相同的指针变量。实例中,执行语句“s=div(add,sub,a,b);”中, add和sub为函数名,传递到形参处,对应形参定义形式为“float (*add)(float,float)” 和“float (*sub)(float,float)”,这样,才实现向函数传递函数名的值。
{68,88,64,83}, {77,69,71,93}, {61,85,52,66}, {84,70,73,93}}; float b[5]; avescore(a,b);/*调用此函数,用于生成每名学生的成绩成绩*/ outdata(a,b);/*调用此函数,用于输出所有学生的各科成绩及平均成绩*/
【课堂精练】
1.从键盘上输入10个一维数组元素的值,通过调用函数对这个数组进行排序,然 后输出,程序的运行结果如图6-22所示。
C语言程序设计实例教程 第3版教学课件6-5
![C语言程序设计实例教程 第3版教学课件6-5](https://img.taocdn.com/s3/m/198d79fd05a1b0717fd5360cba1aa81144318f34.png)
图6-24 程序运行结果
实例42 字符串的存储形式——统计各类字符的个数
【程序代码】 #include "stdio.h" #include "string.h" main() { char str[100]; int i,n=0,wx=0,wd=0,c=0; /*n、wx、wd、c分别用来存储数字、小写字母、大写字母和字符的个数*/ printf("请输入无非空格和制表符的连续字符串: "); scanf("%s",str); /*以下循环用于统计各类字符的个数*/ for(i=0;i<100;i++) { if(str[i]=='\0')
break;
实例42 字符串的存储形式——统计各类字符的个数
【程序代码】 if(isdigit(str[i])) /*isdigit()是判断是否为数字的函数*/
n=n+1; else if(islower(str[i])) /*islower()是判断是否为小写字母的函数*/
wx++; else if(isupper(str[i])) /*isupper()是判断是否为大写字母的函数*/ wd++; else c++; }
此函数的作用是将s2所指向的字符串连接到s1所指向的字符串的结尾,然后生成一 个新的字符串存放在s1所指向的空间中。使用此函数时,要保证s1的指向有足够的空 间来存入连接后的字符串。
【课堂精练】
1.编写程序输入若干字符串,找出首字母为M或m的字符串进行输出。程序的运 行结果如图6-29所示。
第06章C语言程序设计教程电子教案
![第06章C语言程序设计教程电子教案](https://img.taocdn.com/s3/m/defb750e52ea551810a687e0.png)
3.可以把2维数组看作是一种特殊的1维数组:它 的元素又是一个1维数 8 | |0 0 | a | 3 4 | + b | 9 10 | = c | 0 0 | |5 6| |11 12| |0 0 | main() //ex60_4.c {static int a[3][2] = {{1,2}, {3,4}, {5,6}}; static int b[3][2] = {{7,8}, {9,10},{11,12}}; static int c[3][2] = {0}; int i, j, k; for(i = 0; i < 3; i++) for(j = 0; j < 2; j++) c[i][j] += a[i][j] + b[i][j]; for(i = 0; i < 3; i++) {for(j = 0; j < 2; j++) printf ("%5d", c[i][j]); printf("\n"); } getchar(); } 8 10 12 14 16 18
运行结果: 123 456
演示
2维数组的定义方式如下:
数据类型 数组名[行常量表达式][列常量表达式][, 数组名2[行常量表达式2][列常量表达式2]……];
1.数组元素在内存中的排列顺序为“按行存放”,即 先顺序存放第一行的元素,再存放第二行,以此类推。
2. 设有一个m*n的数组x,则第i行第j列的元素x[i][j]在 数组中的位置为:i*n+j(注意:行号、列号均从0开始计 数)。
[Return]
6.2 2维数组的定义和引用
6.2.1 6.2.2 6.2.3 6.2.4 2维数组的定义 2维数组元素的引用 2维数组元素的初始化 2维数组应用举例
C语言程序设计-电子教案 第6章 数组
![C语言程序设计-电子教案 第6章 数组](https://img.taocdn.com/s3/m/d76f8a13376baf1ffc4fadcb.png)
数组与循环结合起 来,可以有效地处 理批量数据!
11
网络信息中心教研室
6.1.3 一维数组的初始化
对数组元素的初始化可以用下面4种方法: 1. 定义时赋初值 如:int a[5]={0,1,2,3,4}; 2. 只给一部分元素赋值 如:int a[5]={0,1,2}; /*只对前三个元素赋值*/ 3. 元素值全为0时的赋值 如:int a[5]={0}; 4. 缺省数组长度对全部元素赋值 如:int a[]={0,1,2,3,4}; /*定义数组a,并对其 中的元素赋值,赋5个值则长度为5*/
第六章
数组
主要内容
6.1 一维数组
6.2 二维数组
6.3 字符数组
大学计算机基础
网络信息中心教研室
2
教学目的:
理解数组与数组元素概念 掌握一维数组的定义与引用 掌握常用排序算法 熟练掌握二维数组的定义、引用、初始化 掌握字符数组的定义、引用、初始化
掌握字符数组的输入与输出
#define N 10 main() { int i,j,k,t,a[N]; printf("input N numbers:\n"); for(i=0;i<N;i++) scanf(“%d”,&a[i]);//输入N个数 printf("\n"); for(i=0;i<N-1;i++) //执行N-1轮比较 { k=i; for(j=i+1;j<N;j++) if(a[j]>a[k]) //遇到比当前元 k=j; //素大的数,记下k if(k!=i) { t=a[i];a[i]=a[k];a[k]=t; } } printf("the sorted numbers:\n"); for(i=0;i<N;i++) printf(“%3d”,a[i]); //输出数组 }
C语言程序设计实例教程 第3版教学课件6-3
![C语言程序设计实例教程 第3版教学课件6-3](https://img.taocdn.com/s3/m/6e03f9addc3383c4bb4cf7ec4afe04a1b071b034.png)
实例38 指针数组和行指针——二维数组与指针
【实例任务】 定义一个二维数组、
一个指针数组、一个 行指针,通过多种方 式输出数组元素一个 数组元素a[1][2]的值。 程序的运行结果如图 6-14所示。
图6-14 程序的运行结果
实例38 指针数组和行指针——二维数组与指针
【程序代码】
#include "stdio.h" main() { int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; int i,j,*p[3],(*q)[4]; /*这里p是一个指针数组,q是一个行指针*/ printf("通过数组名来输出数组元素a[1][2]的值\n");
实例37 二维数组名和数组元素的地址——二维数组的成员介绍
【相关知识】 3.二维数组元素的地址
二维数组名的值为二维数组元素的首地址,二维数组又是由一维数组构成的, 那么可以通过多种方法得到任意一个二维数组元素a[i][j]的地址。
&a[i][j] /*直接用取地址运算符*/ a[i]+j /*通过一维数组名移动j个存储单元得到其地址*/ *(a+i)+j /*表达式*(a+i)的值与表达a[i]的值相同*/ &a[0][0]+3*i+j /*先找到第一个元素的地址,然后通过指针移动得到其地址*/ a[0]+3*i+j /*表达式a[0]的值,即表达式&a[0][0]的值*/
{for(j=0;j<3;j++) printf("a[%d][%d]=%d ",i,j,*(*(a+i)+j)); printf("\n"); } getch(); }
C++语言程序设计电子教案6
![C++语言程序设计电子教案6](https://img.taocdn.com/s3/m/7739b02f580216fc700afdcb.png)
第6章 数组
YYH版
#include <stdio.h> 因i是从0算起的,故10的顺 void main() 序位置应是找到的i再加1。 { int i, flag, data[15]; flag=0; //定义判断15个数据中有否10 的标志 printf("Input numbers: \n"); for (i=0; i<15; i++) //循环输入15个数据 scanf("%d", &data[i]); for (i=0; i<15; i++) //循环判断15个数据有否10 if (data[i]==10) { printf("10 is inputed in the position %d.\n", i+1); flag=1; /* 标记10在输入数据中 */ 问:可否 break; 置入此处, 提问:去掉“flag=1;”后对吗? } 但要加记 if(flag==0) printf("10 is not in numbers"); 位器。 }
#define N 6//宏定义,使N被置换为6 #include <stdio.h> void main() { int a[N][N], m[N], i, j; printf("Input numbers: \n"); for (i=0; i<N; i++) //双重循环输 for (j=0; j<N; j++)//入矩阵36个 scanf("%d", &a[i][j]); //数据 for (i=0; i<N; i++) //双重循环求 { m[i]=a[i][0]; //每行最小值 for (j=1; j<N; j++) if (m[i]>a[i][j]) m[i]=a[i][j]; }
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
定义数组的同时可以对数组初始化。以下初始化的方法都是允许 的: int a[10]={1,2,3,4,5,6,7,8,9,10};//完全初始化 int a[]={1,2,3,4,5,6,7,8,9,10}; //完全初始化,可省略长度 int a[10]={1,2,,4,5};//部分元素a[0]、a[1]、a[3]、a[4]初始化
21世纪高等学校精品规划教材
第6章 数组
掌握一维数组、二维数组的定义、初始化和数 组元素的引用 掌握字符数组的定义、初始化和数组元素的引 用 掌握字符串的存储方法和应用 掌握有关处理字符串的系统函数的使用方法
【问题】从键盘接收10个数,求平均 数并输出所有小于平均数的数。
【分析】从键盘接收10个数,求平均数很简单,可以采 用边接收边求和的方法,最后根据总和求平均数。下面 的程序可以做到: int a,i; float s; for(i=0,s=0;i<10;i++) { scanf("%d",&a); s = s + a; }
省略行的完全初始化
分行完全初始化,可读性较好
部分初始化
Байду номын сангаас
int a[3][4]={1,2,3,4};
【例6-2】演示二维数组的定义及 元素引用
#include <stdio.h> main() { int i,j,k=0; int a[3][4]; for(i=0;i<3;i++) /*变量i控制数组a的行下标*/ { for(j=0;j<4;j++) /*变量j控制数组a列下标*/ { a[i][j]=k; printf("a[%d][%d]=%d\t",i,j,a[i][j]); k++; } printf("\n"); } }
注意:
C语言不允许对数组的大小作动态定义,即定义行中的数组长度 可以包括常量和符号常量,但不能包括变量。例如,下面的定义 是错误的。
int n=10; int a[n];
/*因为n为变量*/
而下面的定义是正确的:
#define N 10 main() { int a[N]; /*N为符号常量*/ …}
连接后的s1的有效字符长度为17,包括结束符在 内,s1至少需要18个字符长度,否则连接是错误 的。
6.4.2 字符串函数
strcmp(字符串1, 字符串2) 字符串比较函数
函数比较s1和s2字符串的大小,并返回比较的结果。 若s1大于s2,则返回一个正整数。 若s1等于s2,则返回0。 若s1小于s2,则返回一个负整数。 字符串比较规则:自左向右按ASCII码值大小进行比较,直 至出现一对不同字符或者遇到结束符为止。例如: strcmp("ABC","abc") /*返回负整数,前面字符串小 */ strcmp("ABC","ABC\0abc")/*返回0,二者相等*/ strcmp("ABC","AB") /*返回正整数,前面的大*/ strcmp("AB","ABC") /*返回负整数,前面的小*/
strcpy(字符串1, 字符串2) 字符串复制函数
char s1[20]; char s2[] = "Good luck"; strcpy(s1,s2); puts(s1); /*输出Good luck*/
strcpy函数可以将结束符一起复制过去,以上复制 操作也可以直接写成:strcpy(s1, "Good luck");
【例6-3】输入3位学生的计算机、数 学成绩,计算每门课程的平均分。
#include <stdio.h> main() { float score[3][2],average[3],temp; char info[2][10]={"Computer","English"}; int i,j; for(i=0;i<2;i++) for( i = 0 ; i < 3 ; i++ ) { temp = 0; { printf("No:%d\n",i+1); for(j=0;j<3;j++) temp = temp + score[j][i]; for( j = 0 ; j < 2 ; j++ ) average[i] = temp / 3; { printf("%s:",info[j]); printf("%s:%.2f\n", scanf("%f",&score[i][j]);} info[i],average[i]); } } }
6.5 程序举例
【例6-6】将10个数排序输出(冒泡法排序)
【分析】对一系列数进行排序有很多种方法,冒泡 法是其中比较容易理解的一种算法。所谓冒泡法, 就是指找到的大数或者小数像气泡一样浮出水面被 发现。为了理解算法,来看下面的例子。
【例6-6】将10个数排序输出
第1次查找,范围:7 2 9 1 8 第1步:7>2,将7和2交换位置,得到 2 7 9 1 8 第2步:7<9,不交换。 第3步:9>1,将9和1交换位置,得到 2 7 1 9 8 第4步:9>8,将9和8交换位置,得到 2 7 1 8 9 第1次查找,将9作为最大数放在最后,结果为 2 7 1 8 9
初始化的方法如下:
【例6-4】输入一串字符,将其按 逆序输出。
#include <stdio.h> #include <string.h> main() { char s[100]; int i=0; printf("Input a string:"); gets(s); while(s[i] != '\0') i++; while(--i>=0) putchar(s[i]); putchar('\n'); }
6.2 一维数组
一维数组用于存储一行或一列的数据。定义 方式如下:
<类型> <数组名> [<常量表达式>]; <类型>:简单类型或结构体、共用体等复杂类 型。 <数组名>:数组的标识、命名规则同变量名。 <常量表达式>:用来定义数组的长度,因为数 组也必须先定义再使用。 例如:int a[10];char s[100];
正确的定义:
【例6-1】编程求10个数中的最大值、最小 值、平均值。输出所有小于平均值的数。
void main() aver = s/10; { int a[10],i; printf("max is %d\n",max); int max,min; printf("min is %d\n",min); float s=0,aver; printf("average is %.2f\n",aver); printf("Input 10 numbers: "); for(i=0;i<10;i++) for (i=0;i<10;i++) if(a[i]<aver) printf("%4d",a[i]); scanf("%d",&a[i]); printf("\n"); s = max = min = a[0]; } for (i=1;i<10;i++) { if (a[i]>max) max=a[i]; else if (a[i]<min) min=a[i]; s = s + a[i]; }
注意:
数组元素的下标从0开始。 数组名不能像变量一样进行赋值操作。以下用法是错 误的:
int a[10],b[10]; a=b; /*错误*/ int a[10]; /*定义整型数组a,它有10个元素*/ char s[20]; /*定义字符型数组s,它有20个元素*/ float f[5],g[10]; /*定义实型数组f和g,f数组有5个元素,g 数组有10个元素*/
6.1 数组的基本概念
所谓数组,就是一组类型相同的变量。 它用一个数组名标识,每个数组元素都是通过 数组名和元素的相对位置——下标来引用的。 数组可以是一维的,也可以是多维的。
int a1,a2,a3,…,a10 int a[10]; === (a[0],a[1],a[3],…,a[9]) 其中下标从0开始,和前面不同的是,这些变量统 一共享一个数组名a。
int a[3][4]
a[0][0] a[0][1] a[0][2] a[0][3] a[1][0] a[1][1] a[1][2] a[1][3] a[2][0] a[2][1] a[2][2] a[2][3]
二维数组的初始化
完全初始化
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12}; int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};