一)下列程序均可以为一维数组元素赋值,请输入程序并运行。比较各方法的不同。
1.在定义数组的同时对数组初始化,并理解数组名变量的值。
#include "stdio.h"
int main(void)
{
int a[4] ={5,4,9,21};
printf("\n%d%d%d%d\n",a[0],a[1],a[2],a[3]);
printf("%ld\n",a);
return 0;
}
//解释数组名是一个地址,它可以不可以被赋值
// 数组名是一个地址
2.用语句为一维数组元素进行赋值
#include"stdio.h"
int main(void)
{
int a[5];
a[0]=22;
a[1]=24;
a[2]=26;
a[3]=28;
printf("\n%d %d %d %d %d\n",a[0],a[1],a[2],a[3],a[4]);
return 0;
}
//解释输出a[4]的结果。a[4]没有被赋值,此时a[4]=0
3.用循环结构为每个数组元素赋值,输出该数组的每一个元素的值
#include "stdio.h"
int main(void)
{
int i,a[5];
for(i=0; i<5; i++)
scanf("%d",&a[i]);
printf("\n");
for(i=0; i<5; i++)
printf("%d ",a[i]);
printf("\n");
printf("%ld %ld\n",a,&a[0]);
return 0;
}
//&a[i]是地址,a[i]是地址里存储的值
//
编写一程序,为一维数组a中的元素赋值,并按照逆序输出。
#include"stdio.h"
int main(void)
{
int i, a[10]; //定义循环变量i和一维数组a
for(i=0;i<=9;i++)
scanf("%d",&a[i]);
for(i=9;i>=0;i--)/*请把()中的代码补充完整*/
printf("%d ",a[i]);/*按照逆序输出*/
printf("\n");
printf("%ld \n",&a[0]);
printf("%ld \n",&a[1]);
printf("%ld \n",&a[2]); /*在下面补充代码,输出各元素的地址,注意格式符用%ld*/
printf("\n");
return 0;
}
While
#include"stdio.h"
int main(void)
{
int a[10]; //定义循环变量i和一维数组a
int j=9;
int i=0;
while(i<=9)
{
scanf("%d",&a[i]);
i++;}
while(j>=0)/*请把()中的代码补充完整*/
{
printf("%d ",a[j]);/*按照逆序输出*/
j--;}
printf("\n");
printf("%ld \n",&a[0]);
printf("%ld \n",&a[1]);
printf("%ld \n",&a[2]);/*在下面补充代码,输出各元素的地址,注意格式符用%ld*/
printf("\n");
return 0;
}
(三)编写程序,输出一维数组arr中的元素最小值及其下标。
编程提示:
1.定义一个变量min,它的类型与定义数组时用的类型一致,用它来存放数组各元素的最小值,min=arr[0],然后定义一个unsigned变量pos,初始化为0。即从数组第零个元素开始判断。
2.通过循环,依次判断数组中的每一个元素arr[i]是否小于arr[pos],如果小于,则将把i值赋给pos,将arr[i]赋给arr[pos]。
3.循环结束后,pos则为最小值下标,arr[pos]为最小值,并输出
#include"stdio.h"
int main(void)
{
int i=0;
int arr[10]={9,8,7,6,1,3,5,18,2,4};
int min=arr[0]; /*min用于存放最小值*/
unsigned pos=0; /*pos用于存放最小值的下标*/
printf("for 循环\n");
for(i=0;i<11;i++)
if (arr[i]
四)分别求出一维数组中下标为偶数和奇数的元素之和,并输出。
编程提示:
1.定义一个数组arr并初始化。假设定义的元素个数为N(N大小等于4)。
2.定义两个整型变量evensum和oddsum,用于存放下标为偶数和奇数的元素和,并把它们均初始化为0。
3.定义一个变量k,如果N为奇数,令K=N-1,否则K=N;从数组的第0个元素开始,每次循环变量i递增2,则循环结束一直到i
4.循环结束后,如果N为奇数,则执行evensum+=arr[i];
5.输出evensum和oddsum元素之和。
#include "stdio.h"
int main(void)
{
int N=4;
int k;
int i, evensum=0,oddsum=0;
int arr[N];
for(i=0;i