栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++数组部分

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++数组部分

C++数组
    • 数组定义
    • 一维数组
        • 一维数组练习案例
    • 冒泡排序
    • 二维数组
        • 二维数组练习案例

数组定义

数组:数组就相当于一个集合,里面存放相同类型的数据元素。数组是由连续的内存位置组成的。

一维数组
	//数组三种创建方式
	//1.数据类型 数组名【数组长度】;
	int arr1[5];
	arr1[0] = 10;   //为数组赋值
	//2.数据类型 数组名【数组长度】={值1,值2,值3......}
	int arr2[5] = { 10,20,30,40,50 };
	for (int i = 0; i < 5; i++) {      //利用循环,输出数组中元素
		cout << arr2[i] << endl;
	}
	//2.数据类型 数组名【】={值1,值2,值3......}
	int arr3[] = { 10,20,30,40,50 };

	cout << "数组占用内存空间为:" << sizeof(arr3) << endl;
	cout << "数组每个元素占用内存空间为:" << sizeof(arr3[0]) << endl;
	cout << "数组中元素个数为:" << sizeof(arr3) / sizeof(arr3[0]) << endl;

	cout << "数组首地址为:" << arr3 << endl;        //若改写为(int)arr3则代表把16进制地址强转为十进制,
	cout << "数组中第一个元素地址为:" << (int)&arr3[0] << endl;          //&为取址符
一维数组练习案例

1、五只小猪称体重

//找出五只小猪中最重的一只
	int pig[] = { 100,200,300,150,280 };
	int max = 0;
	for (int i = 0; i < 5; i++) {
		if (pig[i] > max) {
			max = pig[i];
		}
	}
	cout << "最重的小猪重量为:" << max << endl;

2、 数组元素逆置

	//将数组逆置
	int arr4[] = { 1,3,5,7,9 };
	cout << "数组逆置前为:" << endl;
	for (int i = 0; i < 5; i++) {
		cout << arr4[i];
	}
	int start = 0;
	int end = sizeof(arr4) / sizeof(arr4[0]) - 1;      //得到数组个数
	while (start < end) {
	int temp = arr4[start];
	arr4[start] = arr4[end];
	arr4[end] = temp;
	start++;
	end--;
	}
	cout << "逆置后的数组为:" << endl;
	for (int i = 0; i < 5; i++) {
		cout << arr4[i];
	}
冒泡排序

冒泡排序:是最常用的排序算法,对数组内的元素进行排序。

算法步骤:
step1比较相邻的两个元素,如果第一个比第二个大,就交换他们两个。
step2对每一对相邻元素做同样的操作,执行完毕后,找到第一个最大值。
step3重复以上步骤,每次比较次数减1,直到不需要比较。

	//冒泡排序
	int shuzu[9] = {2,4,0,5,8,6,9,7,3};
	cout << "输出原数组为:" << endl;
	for (int i = 0; i < 9; i++) {
		cout <<  shuzu[i];
	}
	cout << endl;
	//总共排序轮数 为元素个数-1
	for (int i = 0; i < 9-1; i++) {
		//内层循环对比次数=元素个数-当前轮数-1
		for (int j = 0; j < 9 - i - 1; j++) {
			if (shuzu[j] > shuzu[j + 1]) {                   
				int temp = shuzu[j];
				shuzu[j] = shuzu[j + 1];
				shuzu[j + 1] = temp;
			}
		}
	}
	cout << "输出排序后的数组为:" << endl;
	for (int i = 0; i < 9; i++) {
		
			cout<< shuzu[i];
	}
	cout << endl;
二维数组
//二维数组 四种定义方式
	//数据类型 数组名【行数】【列数】;
	//数据类型 数组名【行数】【列数】={ {数值1,数值2 ...},{数值3,数值4...} };
	//数据类型 数组名【行数】【列数】={ 数值1,数值2,数值3,数值4... };
	//数据类型 数组名【】【列数】={ 数值1,数值2,数值3,数值4... };

	int dshuzu[2][3] = 
	{ 
		{1,2,3},
		{4,5,6} 
	};

	//输出二维数组
	for (int i = 0; i < 2; i++) {
		for (int j = 0; j < 3; j++) {
			cout << dshuzu[i][j]< 
二维数组练习案例 

输出每个同学的总分。

	//统计三人三科成绩,并得出每人成绩总和
	int grade [3][3]= {
		{100,100,100},
		{90,50,100},
		{60,70,80}
	};
	int sum = 0;
	string names[] = {"张三","李四","王五"};                           //对string进行输入输出的时候,需要包含头文件
	for (int i = 0; i < 3; i++) {
		for (int j = 0; j < 3; j++) {
			sum += grade[i][j];
		}
		cout << "第" << i + 1 << "个人的总成绩为:" << sum << endl;                   //按序号输出
		cout << names[i]<< "的总成绩为:" << sum << endl;                            //按姓名输出
	}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/604978.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号