{C++利用数组处理批量数据(2)}菜大学生C++笔记15

第5章 利用数组处理批量数据


5.2 、定义和引用一维数组
9 如何在定义数组时就给每个变量都赋值?(初始化的三种方式,1) 给每个元素赋值,2) 给一部分赋值,3)根据初始化元素的个数确定数组大小)
如果定义数组后未初始化。值 为 无意义的数。
#include < iostream>
using namespace std;
int main ( )
{
int i=5;
int a[5]={1,2,3,4,5};
cout<<“输出数组a:”;
for(i=0;i<5;i++)
{
cout<<a[i]<<" “;
}
cout<<endl;
int b[5]={11,22};
//数组中有5个元素,在初始化时只给出2个值。其余的会被初始化为0
cout<<“输出数组b:”;
for(i=0;i<5;i++)
{
cout<<b[i]<<” “;
}
cout<<endl;
int c[]={1,2,3,3,4,4,5,6};//数组大小通过给出的初始化值的个数得到
cout<<“输出数组c:”;
//通过 sizeof©/sizeof(int) 获得数组元素个数
for(i=0;i<sizeof©/sizeof(int);i++)
{
cout<<c[i]<<” ";
}
cout<<endl;
return 0;
}

10 再次解决fabonacci(斐波那契)数列20项。
#include < iostream>
using namespace std;
int main ( )
{
int fabonacci[20]={1,1} ;
int i;
for(i=2;i<20;i++)
{
fabonacci[i]=fabonacci[i-1]+fabonacci[i-2];
}
for(i=0;i<20;i++)
{
//cout<<fabonacci[i]<<" “;
printf(”%10d",fabonacci[i]);
if((i+1)%5==0)
cout<<endl;
}
int n;
cout<<“请问要查数列的第几项?”;
cin>>n;
cout<<“fabonacci数列的第”<<n<<“项是:” <<fabonacci[n-1]<<endl;
return 0;
}

#include < iostream>
using namespace std;
int main ( )
{
int fabonacci[21]={0,1,1} ;
int i;
for(i=3;i<=20;i++)
{
fabonacci[i]=fabonacci[i-1]+fabonacci[i-2];
}
for(i=1;i<=20;i++)
{
//cout<<fabonacci[i]<<" “;
printf(”%10d",fabonacci[i]);
if(i%5==0)
cout<<endl;
}
int n;
cout<<“请问要查数列的第几项?”;
cin>>n;
cout<<“fabonacci数列的第”<<n<<“项是:” <<fabonacci[n]<<endl;
return 0;
}

11 起泡排序
int a[10]={ 3,5,9, 11, 33, 6 ,-9 ,-76, 100, 23}
下标从0开始。
(如果为了符合人的习惯,可把下标0空出)
3 5 9 11 33 6 -9 -76 100 23
3 5 9 11 6 -9 -76 33 23 100
3 5 9 6 -9 -76 11 23 33 100
#include < iostream>
using namespace std;
int main ( )
{
int a[10]= { 23,5,19, 11, 33, 6 ,-9 ,-76, 100, 23};
int i,j,t;
for(i=0; i<10; i++)
{
printf(“%5d”,a[i]);
}
cout<<endl;
//一趟比较需要进行9对数的比较
//a[0] 与 a[1] a[1] 与 a[2]…a[8]与 a[9];
for(j=0; j<9; j++)
{
for(i=0; i<9; i++)
{
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}
}
for(i=0; i<10; i++)
{
printf(“%5d”,a[i]);
}
cout<<endl;
return 0;
}

#include < iostream>
using namespace std;
int main ( )
{
int a[10]= { 23,5,19, 11, 33, 6 ,-9 ,-76, 100, 23};
int i,j,t;
for(i=0; i<10; i++)
{
printf(“%5d”,a[i]);
}
cout<<endl;
//一趟比较需要进行9对数的比较
//a[0] 与 a[1] a[1] 与 a[2]…a[8]与 a[9];
for(j=0; j<9; j++)
{
for(i=0; i<9-j; i++)
{
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}
}
for(i=0; i<10; i++)
{
printf(“%5d”,a[i]);
}
cout<<endl;
return 0;
}

12 使用数组时不要越界。(越界后可能会在执行时不错,可怕的是系统不检测这种错误)
int i=1,a[7]={0},j=2;
cout<<&i<<endl;
cout<<a<<endl;
cout<<&j<<endl;
cout<<a[7]<<endl;
a[7]=5;
cout<<i<<endl;
在这里插入图片描述
如果访问数组时越界,可能破坏其他元素的值。

5.3 、 定义和引用二维数组
1 为什么要使用二维数组?
在这里插入图片描述
2 如何定义二维数组?(可以把二维数组看成矩阵—》行列)
类型名 数组名[常量表达式][常量表达式]
int score[3][5];//元素个数为 15
//访问二维数组元素时需要两个下标

3 二维数组可以看成一维数组组成的数组。
int score[3][5];
可以看成score由3个元素组成:score[0] score[1] score[2]
每个元素又是一个数组,由5个元素构成。
排长 班长 士兵

4 讨论数组名,与数组元素 (常量??变量??)
数组中每个元素都是变量。
数组名是????
数组元素是变量,数组名是常量不可变。代表数组元素的首地址。
在这里插入图片描述
无论是一维数组还是二维数组,数组名都是常量。不可变。
可变的是数组元素。
5 引用二维数组(两个下标,可以用变量)
对于数组,未初始化时,值没意义。
在这里插入图片描述
6 初始化二维数组
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
在这里插入图片描述
int a[3][4]={{1,2},{5},{9,10,11}};
在这里插入图片描述
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
在这里插入图片描述
int a[][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
初始化时,把行数和省略,根据给定的初始化的行数。确定数组的行数。列数不允许省略。
int a[][4]={{1,2},{5},{9,10,11}};
int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12};
//根据元素个数 确定最少需要几行。
int a[][4]={1,2,3,4,5,6,7,8,9,10};//根据元素个数 确定最少需要几行。
int a[][4]={1,2,3,4,5,6}; 2行
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

C0ntr01

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值