(三)c++—数组、元素逆置、冒泡排序

数组

一维数组定义方式

定义方式3种:
1.数组类型 数组名 [数组长度]
2.数据类型 数组名 [数组长度]={}

#include<iostream>
using namespace std;
//乘法口诀表
//continue 语句 在循环语句中, 执行到本行就不再执行后面的代码

int main() 
{
	//放在一块连续的内存空间中,每个元素都是相同的数据类型
	int score[5] = {10,10,20,80,90};//数组的下标是从0开始的;
	cout << score[2] << endl;
	for (int i = 0; i < 5; i++)//输出数组的个数
	{
		cout << score[i] << endl;
	}
    int
	system ("pause");
	return 0;
}

一维数组数组名

1.可以统计整个数组在内存中的长度
sizeof(数组名)
2可以获取数组在内存中的首地址
&array[0]

#include<iostream>
using namespace std;
//乘法口诀表
//continue 语句 在循环语句中, 执行到本行就不再执行后面的代码

int main() 
{
	//放在一块连续的内存空间中,每个元素都是相同的数据类型
	int score[5] = {10,10,20,80,90};//数组的下标是从0开始的;
	cout << "整个数组所占的内存空间" << sizeof(score) << endl;

	cout << "每个元素所占的内存空间" << sizeof(score[0]) << endl;
	cout << "数组中元素个数为:" << sizeof(score)/sizeof(score[0]) << endl;
	//可以通过数组名查看数组首地址
	cout << "数组中第一个元素的地址:" << &score[0] << endl;//&取地址符
	cout << "数组中第二个元素的地址:" << &score[1] << endl;//&取地址符 int占4
	cout << "数组中第二个元素的地址:" <<(int)&score[1] << endl;//转换为10进制

	cout << "数组的首地址:" << score << endl;
	//对数组不能进行赋值
	system ("pause");
	return 0;
}

元素逆置

#include<iostream>
using namespace std;
//乘法口诀表
//continue 语句 在循环语句中, 执行到本行就不再执行后面的代码

int main() 
{
	//5只小猪称体重
	int weig[5] = { 300,350,200,400,250 };
	cout << "逆置前的位置:" << endl;
	for (int i=0; i < 5; i++)
	{
		cout << weig[i] << endl;
	}
	//start 和end 下标元素 进行互换
	int start = 0;
	int end = sizeof(weig) / sizeof(weig[0])-1;//结束下标
	//逆置,上下标进行互换

	while (start < end)
	{
		//实现元素互换
		int temp = weig[start];
		weig[start] = weig[end];
		weig[end] = temp;
		//下标更新
		start++; end--;
	}
	cout << "逆置前的位置:" << endl;
	for (int i=0; i < 5; i++)
	{
		cout << weig[i] << endl;
	}
   system("pause") ;
	return 0;
}

冒泡排序

#include<iostream>
using namespace std;
//乘法口诀表
//continue 语句 在循环语句中, 执行到本行就不再执行后面的代码

int main() 
{
	//冒泡排序:对组内元素进行排序
	//升序排列
	int arr[] = { 4,2,8,0,5,7,1,3,9 };
	cout << "排序前:" << endl;
	for (int i = 0; i < 9; i++)
	{
		cout << arr[i] ;
	}
	cout << endl;

	//排序的总轮数
	//总共排序的轮数=元素个数-1;
	for (int i = 0; i < 9 - 1; i++)
	{
		//内层循环对比 次数=元素个数-当前轮数-1
		for (int j=0; j < 9 - i - 1;j++)
		{
           if(arr[j]>arr[j+1])
		   {
			   int temp = arr[j];
			   arr[j] = arr[j + 1];
			   arr[j + 1] = temp;
            }
		}
	}

	cout << "排序后:" << endl;
	for (int i = 0; i < 9; i++)
	{
		cout << arr[i] ;
	}

   system("pause") ;
	return 0;
}

考试成绩汇总

#include<iostream>
using namespace std;
#include<string>;//string 头文件
//二维数组定义方式

int main()
{
	//二维数组应用案例——考试成绩
	int scores[3][3] = 
	{ 
		{ 100 ,100 ,100 }, 
		{90 ,50 ,100},
		{60 ,70 ,80} 
    };
	for (int i = 0; i < 3; i++)//定义行
	{
		for (int j = 0; j < 3; j++)//定义列
		{
			cout << scores[i][j]<<"  " ;//每一行的空格分割
		}
		cout << endl;
	}

	string names[3] = { "张三","李四","王五" };
	
	//统计总和
	for (int i = 0; i< 3; i++)
	{
		int sum = 0;
		for (int j = 0; j < 3; j++)
		{
			sum += scores[i][j];

		}
		cout << names[i] << "个人的总分为:" << sum << endl;
	}

	system("pause");
	return 0;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TillerB

各位土豪赏点钱,帮我买条秋裤!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值