C语言作业2

afe2196d313547d4a66b2eaf04b6f6c2.jpeg

 

第六章: 数组

补充基本概念关键字 :由程序语言事先定义的 

标识符:由程序员命名

1.数组初始化

元素类型  数组名 【元素数量】={逗号分隔的元素内容}

2.初始化列表短于数组长度

int arr[10]={1,2,3,4,5}

*数组有十个元素,而初始化列表只指定了5个元素,那么剩下元素被取代为零

*若初始化列表什么都没有,所有元素将被填为零

*若初始化列表长于数组长度,则代码无法编译通过

*方括号【】可以不填

*访问数组元素是从0开始的

3.小心数组越界

*如果数组只有10个元素,我们访问或修改这10个元素以外的元素,那么结果是未定义的。这意味着程序看上去可以运行,但运行的结果很怪,或异常终止。

警告:千万不要越界访问或修改数组元素

eg. int arr[10]={}; 

      printf("%d\n,arr[10]")  // 下标为0到9,访问下标10的元素属于越界访问

怎么判断呢?

      可以理解  定义时是 int arr[]      而使用时(printf...)表示下标 

补充:冒泡排序(我的天,这个图简直了,直接秒懂 )eabac179d8e04f46bd89adb4395eaa1a.gif

 4.多维数组

eg.1.数组名

     2.元素类型:int[10]

     3.元素数量:5

按理来说应该写成 int[10]  B[5];

数组名左边的方括号都移到右边来

即   Int B【5】【10】;  

B数组含5个元素,每个元素都是含10个int元素的数组

声明一个数组

元素类型数组名【元素个数】【元素个数】

若元素类型中含有方括号,移到最右边

5.字符数组和字符串

*字符串常量末尾会自动添加   '\0' 结尾(所以元素个数要比实际字符个数>=1)

*打印字符数组

int main()
{
	char str[20] = { 'H','e','l','l','o','w','o','r','l','d' };
	printf(str);
	printf("\n");
	printf("%s", str);
	printf("\n");
	printf("\n");
	return 0;
}

6.使用strlen测量字符串长度

*strlen可以接受一个字符串作为参数。

*strlen返回值为这个字符串的长度

*使用strlen函数,需包含头文件string.h

*与sizeof区别:strlen:测量第一个数组到\0的长度

                        sizeof:测量数组本身的长度

char str[20];
scanf("%s",str);//将键盘输入的一串字符储存到字符数组str

7.冒泡排序讲解

 

#include <stdio.h>
int main()
{
	int arr[10] = { 12,78,43,54,15,84,34,78,11,45};
	//外层控制行
	for (int i = 0; i < 9; i++)
	{
		//内层控制列
		for (int j = 0; j < 9 - i; j++)
		{
			//比较两个元素
			if (arr[j] > arr[j + 1])
			{
				int temp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = temp;
			}
		}
	}
	for (int i = 0; i < 10; i++)
	{
		printf("%d\n", arr[i]);
	}
	return 0;
}

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值