6. 2一维数组o一维数组用于存储一行或一列的数据。定义方式如下:o<类型><数组名>「<常量表达式>]:<类型>:简单类型或结构体、共用体等复杂类型<数组名>:数组的标识、命名规则同变量名。<常量表达式>:用来定义数组的长度,因为数组也必须先定义再使用o例如:inta[10];char s[100];
6.2 一维数组 一维数组用于存储一行或一列的数据。定义方式如下: <类型> <数组名> [<常量表达式>]; <类型>:简单类型或结构体、共用体等复杂类型。 <数组名>:数组的标识、命名规则同变量名。 <常量表达式>:用来定义数组的长度,因为数组 也必须先定义再使用。 例如:int a[10];char s[100];
C语言不允许对数组的大小作动态定义,即定义行中的数组长度可以包括常量和符号常量,但不能包括变量。例如,下面的定义是错误的。μint n=10; int a[n];/*因为n为变量*o而下面的定义是正确的:#define N 10mainO int a[N];/*N为符号常量*
C语言不允许对数组的大小作动态定义,即定义行中 的数组长度可以包括常量和符号常量,但不能包括 变量。例如,下面的定义是错误的。 int n=10; int a[n]; /*因为n为变量*/ 而下面的定义是正确的: #define N 10 main() { int a[N]; /*N为符号常量*/ .}
定义数组的同时可以对数组初始化。以下初始化的方法都是允许的:·inta[10]={1,2,3,4,5,6,7,8,9,10];//完全初始化·inta[]={1,2,3,4,5,6,7,8,9,10};//完全初始化,可省略长度inta[10]={1,2,,4,5];/ /部分元素a[o]、a[1]、a[3]a[4]初始化
• 定义数组的同时可以对数组初始化。以下初始化的 方法都是允许的: • 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]初始化
数组元素的下标从0开始数组名不能像变量一样进行赋值操作。以下用法是错误的:o int a[10],b[10]o a=b;/*错误*/正确的定义:o int a[10];/*定义整型数组a,它有10个元素*/o char s[20];/*定义字符型数组s,它有20个元素*/ofloatf5],g[1o];/*定义实型数组f和g,f数组有5个元素,g数组有10个元素*/
数组元素的下标从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.3案例:求10个数中的最大值、最小值、平均值void mainOaver = s/10; int a[1o],i;printf("maxis%d n",max)int max,min;printfc"minis %d\n",min);float s=o,aver;printf("averageis%.2fn",aver)printf("Input1o numbers:"):for(i=0;i<10;i++)for (i=0;i<10;i++)if(a[i]<aver)printf("%4d",a[iDscanf("%d",&a[iD;printf("n");s = max = min = a[o];for (i=1;i<10;i++)Lif (a[i]>max)max=a[i];口Xcn:Clc6_11Debuglc6_1.ereelseInput10nunbers:68889575829556768692一if (a[i]<min)naxis95ninis56min=a[i];average is 81.3068755676As = s + a[i];1
6.3 案例:求10个数中的最大值、最小值、平均值 void main() { int a[10],i; int max,min; float s=0,aver; printf("Input 10 numbers: "); for (i=0;i<10;i++) scanf("%d",&a[i]); 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]; } aver = s/10; printf("max is %d\n",max); printf("min is %d\n",min); printf("average is %.2f\n",aver); for(i=0;i<10;i++) if(a[i]<aver) printf("%4d",a[i]); printf("\n"); }