C语言数据的组织与处理—数组(定义、输入、输出)

注:关于数组的介绍文字较多,你想要的都有,只不过要有耐心去寻找!早日成功!!

一、数组的思想及意义:
中秋佳节,有贵客来到草原,主人要从羊群中选一只肥羊宴请宾客,当然要选 最肥者,这样就要记录下每只羊的重量。如果有成千上万只羊,不可能用一般变量来记录,要用带有下标的变量。代码如下,大家也可能执行一下,先看下效果

/* 找出最重的羊 */
#include "stdio.h"
void main()
{
	float sheep[10]; //数组,有10个浮点类型元素,用于存放10只着每只的重量
	float bigsheep=0.0;               //浮点型变量,存放最肥羊的重量
	int bigsheepno=0,i;           //整型变量记录最肥羊的编号,i计数循环
    //循环输入10只羊的数量
	for(i=0;i<10;i++)
	{
		printf("请输入羊的重量:");
		scanf("%f",&sheep[i]);		
	}
	//假设第0只是最肥的
	bigsheep=sheep[0];
	//依次比较一遍
	for(i=0;i<10;i++)
	{
		if(bigsheep<sheep[i])        //如果第i只羊比当前羊肥大
		{
			bigsheep=sheep[i];       //第i只羊为当前最肥羊
			bigsheepno=i;            //记录第i只着的编号
		}		
	}
	//输出最肥羊的重量
	printf("最肥羊的重量是:%f\n",bigsheep);
	//输出最肥羊的编号
	printf("最肥羊的编号为:%d\n",bigsheepno);    
}

数组的思想就是可以让我们需要用多个变量时,可以一次性定义。利用下标的方法来依次使用即可。节省代码且容易排错。
二、什么是数组
数组就是具有相同数据类型的有序集合。分为一维数组、二维数组及多维数组。
1.一维数组就是用一个下标定义的数组
2.二维数组就是用二个下标定义的数组
3.我们把具有三个下标及三个下标以上的数组称为多维数组。
我们用一个生活中的例子理解什么是数组:我们借用讲解变量时举的“内存大酒店”开房的例子理解变量的相关属性,今天,我们继续借用这个例子,不过今天我们来的是一个旅行团10个旅客一起来酒店住店。同样要“先登记后入住”,不过,今天登记房间的时候我们加了两个特殊要求:1,是个房间必须是类型相同的房间;2,这十分房间必须是门挨着门的“连号房”,以上两点都是为了“导游”对团队管理比较方便。这正是我们使用数组时最关注的两个属性:“类型相同”“有序”。同样,我们这是个房间也有名字,有入住人,可以当时马上入住,也可以随后入住等等,这些情况对应我们的数组相关的语法。
三、数组
数组在现实生活,及软件开发过程中使用非常灵活,二维数组,多维数组与一维数组的使用及应用一样,下面我们主要讲解一维数组。
1.一维数组的定义
(1)一维数组的定义的形式始下:
类型说明符 数组名[常量表达式];
例如
float sheep[100];
int a2001[1000];
(2)对于一维数组的定义说明如下:
①数组名应符合标识符的命名规则,正式应用中第一个字符应为英文
②用方括号将常量表达式括起来
③常量表达式定义了数组元素的个数
④数组下标从0开始。如果定义5个元素,是从第0个元素至第4个元素。
例如:int a[5];定义了5个数组元素为a[0],a[1],a[2],a[3],a[4].这是5个带下标的变量,这5个变量的类型是相同的,见下表
a
下标 0 1 2 3 4
常量表达式中不允许出现变量。例如:
int n=10,a[n];
2.数组的初始化
(1)可直接在声明时初始化,见下表。例如:
int a[5]={3,5,4,1,2};
注意上面上面语句中元素与元素之间用逗号隔开,句尾用分号结尾。
a 3 5 4 1 2
下标 0 1 2 3 4
(2)请上机做以下6个实验,看看哪些程序是有问题的

①初始程序
/* note:your choice is c ide */
#include "stdio.h"
void main()
{
    int a[5];
    printf("%d\n",a[0]);
    printf("%d\n",a[1]);
    printf("%d\n",a[2]);
    printf("%d\n",a[3]);
    printf("%d\n",a[4]);
}

②其他不变,改变声明项为
int a[5]={2,3,5,8};
③其他不变,改变声明项为
int a[5]={2,3,5};
④其他不变,改变声明项为
int a[5]={2,3,5,6,8,9};
⑤其他不变,改变声明项为
int a[5]={2,3,5,d};
⑥其他不变,改变声明项为
int d=6;
int a[5]={2,3,5,d};
⑦其他不变,改变声明项为
int n=5;
int a[n]={2,3,5};
初始化过程你能总结出什么来呢?
(3)对数组元素赋初始化可以用以下方法实现
①在定义数组时对数组元素赋以初值。例如:
int a[5]={5,4,5,2,1};把值放在一个大括号中依次以逗号分隔,相当于a[0]=5,a[1]=4,a[2]=5,a[3]=2,a[4]=1;
②可以只给一部分元素赋值:例始
int a[10]={1,2,3,4};在语句只给了前4个元素初值,后面6个默认以0补齐
③如果想一个数组里的全部元素值为0;可以写成
int a[10]={0};或int a[10]={0,0,0,0,0,0,0,0,0,0};
④在数组赋初值时可以不指定长度,长度默认就是后面元素的个数:例
int a[]={1,2,2,3,4};数组默认长度为4.
四、数组与for循环的结合应用
数组我们也可以看出是用枚举的方法一个一个来组织,来使用;枚举就可以用循环结构语句for很容易实现,下面我们来看下用数组当中怎么用for语句来完成输入输出及求和等操作。
1.数组元素的输入与输出
用枚举法分析数组一个一个输入如下表
下标 语句
0 先提示后输入a[0]
1 先提示后输入a[1]
2 先提示后输入a[2]
… …
i 先提示后输入a[i]
… …
9 先提示后输入a[9]
参考代码如下:

/*利用for循环给数组输入数值 */
#include "stdio.h"
void main()
{
	int i,a[10];
    for(i=0;i<10;i++)
    {
    	printf("请输入数组里的数值:");
    	scanf("%d",&a[i]);    	
    }    
}

效果图如下
在这里插入图片描述那如果我相要如下效果图,又该怎么改上面的代码 呢?
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/SqrsCbrOnly1/article/details/91375331