笔记18:初探程序中的数组

问题

-如何在程序中创建成百上千个变量?

-如何给成百上千个变量规律赋值?

数组的概念:数组是相同数据类型变量的有序集合

-数组作为整体需要一个合法的命名(数组名)

-数组中的变量没有独立命名,只有在数组中的编号

-数组中的变量数量是固定不变的(数组大小固定)

数组的定义

-语法:type Name [size];

·示例:

int arr1[10];// 建文名为 arr1 的数组

                    //数组中一共有 10 个元素(变量 )

                    //每个元素的类型为 int

double farr[5]; // 定义名为 farr 的数组

                       //数组中一共有 5 个元素(变量)

                      // 每个元素的类型为 double

数组元素的访问

- 通过 数组名[下标]的方式访问数组元素

-数组是一个有序集合,每个元素有固定下标

- 数组元素下标固定从0开始(可以使用变量作为下标)
int arr1[3];

arr1[-1] = 0;        // ERROR

arrl[0] = 1;

arrl[1] = 1;

arrl[2] = 1;

arrl[3]= 4;        // ERROR

注意事项

-只有整型数才能作为下标访问数组元素

-下标越界是一种非常严重的编程错误(工业级 BUG 来源 )

-下标越界带来的严重后果可能不会立即表现

数组的应用案例:计算累加和

-编写程序求出 0 到 100 之间任意一个数的累加和

·如:

√输入:0输出:0 即:0

√输入:1输出:1 即:0+1

√输出10 输出:55 即:0+1+2+..+10

√。。。

解决方案

示例:

#include<stdio.h>

int main()
{
	int n =0;
	int i = 0;
	int flag = 0;	//保存判断结果
	int sum = 0;	//保存累加和

	printf("Input:");
	scanf("%d",&n);	//从键盘输入数值
	getchar();

	flag =((0<=n)&&(n<=100));	//辅助语句
	if(flag)	//如果flag为真
	{
		for(i=0;i<=n;i++)	//初始值i=0,判断条件i<=n,i++累加
		{
			sum += i;		//sum=sum+i
		}
		printf("sum = %d\n",sum);//打印sum
	}


	getchar();
	return 0;
}

运行结果

#include<stdio.h>

int main()
{
	int n = 0;
	int flag = 0;	//保存计算结果
	int sum[101];

	sum[0] = 0;

	for(n=1;n<=100;n++)	//初始值i=0,判断条件i<=n,i++累加
	{
		sum[n] = sum[n-1] + n;		//sum[1]=sum[0]+1;sum[1]=sum[0]+2;...
	}
	do//当while(falg)条件为真,开始下面的循环
	{
		printf("Input:");
		scanf("%d",&n);	//读取键盘输入数值n
		flag = ( (0 <= n) && (n <= 100) );//定义条件falg,判断键盘输入数值的取值范围,需要0 <= n并且n <= 100
		if(flag)//如果满足条件flag
		{
			printf("sum=%d\n",sum[n]);//打印
		}
	}
	while(flag);//条件
		
	getchar();
	return 0;
} 

运行结果

小结

数组是相同数据类型变量的有序集合

数组元素通过 数组名[下标]的方式访问

只有整型数才能作为下标访问数组元素

下标越界是一种非常严重的编程错误

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值