第2个回答 2019-09-20
一位数组赋值的几种方式
int
a[10]={1,2,3,4,5,6,7,8,9,10};
.一般初始化,例:
int
a[10]={3,10,5,3,4,5,6,7,8,9};
int
array[5]={2,3,4,5,6};
其结果是给每一个数组元素都指定了初值。
2.部分元素初始化,其余元素均为零。
例:
int
a[10]={7,8,9,67,54};
仅给前5个元素赋初值,后5个元素初值为0。
3.全部元素均初始化为1。
int
a[10]
=
{1,1,1,1,1,1,1,1,1,1};
不允许简写为 int
a[10]={1};或int
b[10]={1*10};
同学们想一想上述定义a和b数组后,初始化结果是什么?
注意:当程序不给数组指定初始值时,编译器作如下处理:
(1)部分元素初始化,编译器自动为没有初始化的元素初始化为0。
(2)数值数组如果只定义不初始化,编译器不为数组自动指定初始值,即初值为一些随机值(值不确定)。
4.如果全部元素均指定初值,定义中可省略元素的个数。
例:
int
a[5]={9,28,3,4,5};可以写为:
int
a[
]={9,28,3,4,5};
数组元素的引用
c语言规定,不能整体引用数值数组,只能逐个引用数组元素;
元素引用方式:数组名[下标表达式]
例:a[0]
=
a[5]
+
a[7]
-
a[2*3]
“下标表达式”可以是任何非负整型数据。
特别强调:1.一个数组元素,实质上就是一个变量,它具有和相同类型单个变量一样的属性,可以对它进行赋值和参与各种运算。
2.在c语言中,数组作为一个整体,不能参加数据运算,只能对单个的元素进行处理。
第3个回答 推荐于2017-09-10
#include <stdio.h>
int main(void)
{
int a[]={9,19,34,13,13,56};
int max = a[0];
int sum = 0;
float average;
int i = 0;
for(i=0;i<6;++i)
{
if(a[i] >= max)
max = a[i];
printf("%d ",a[i]);
}
putchar('\n');
/*逆序输出*/
for(i=5;i>=0;--i)
printf("%d ",a[i]);
putchar('\n');
for(i=0;i<6;++i)
{
sum += a[i];
}
average = sum/6;
printf("数组平均值:%.2f\n",average);
printf("最大值:%d\n",max);
return 0;
}
追问请问该数组中最大的元素该怎么求?
追答我给的代码中:
for(i=0;i= max)
max = a[i];
printf("%d ",a[i]);
}
max用来存储最大元素的值,初值被赋值为数组的第一个元素-----max = a[0];
通过循环遍历数组所有元素,并通过一个if判断语句比较各个元素与max的值,如果元素大于max,
则max被改写为那个数组元素的值.遍历完成后,max自然就是数组元素中的最大值.
本回答被提问者采纳