数组
一维数组定义方式
定义方式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;
}