c++怎么输入数组_小开带你学C++Lesson 8 dowhile,二维数组和循环嵌套

大家好,我是小开,我又回来了~

开学了,初二学业也比较忙,所以小开以后C++的内容可能会更新的慢一点~

上次我们学习了while循环,有时候可以用来代替for循环。这次我们来学习do-while循环和循环嵌套。先来看do-while循环的写法:

int c=1,a=10;do{  c++;a--;}while(a>=0);

很显然,do里的内容就是符合while条件的时候的内容。唯一的区别是,while循环是先判断条件符不符合,然后在执行命令。而do-while则是先执行命令,如果符合条件就继续执行,不符合就不再执行。

比如下面这段while循环就能替代上面的do-while:

int c=1,a=10;while(1)//纠正一下,死循环中不能什么都不写,while中间要放一个1{  c++;a--;  if(a<0) break;}

那我们来试试看用do-while来写斐波那契数列:

#include#include#includeusing namespace std;int main(){  int a[100],b,c=3;  cin>>b;  a[1]=1;a[2]=1;  do  {    a[c]=a[c-1]+a[c-2];    c++;  }  while(c  cout<  return 0;)

接着来看循环嵌套。顾名思义,循环嵌套就是一个循环嵌着一个循环。其实这本身倒没什么好讲的,有意思的在于它的应用。

在讲它的应用之前,我们要学习一下二维数组。

二维数组,大致可以理解成一张表格。

0fe362c51158c2c528a7ca80d208e6da.png

只不过,在二维数组里,表达一个格子不是用A1这种来区分,而是像坐标轴一样来命名。

c9db8957d3d3801ca2df3e723a1356e6.png

像在这张表格中,(4,5)就是标黄色的那个方格。

6ffde19f71af2c36c822bda66e779d38.png

所以(4,5)指的就是第四行第五列。

那么这里的四个彩色方块分别怎么表示呢?这个就是今天的回家作业。

7ea5d7f31a16c77fd0d842b49442d8db.png

二维数组的定义方式很简单:

int a[101][101];

赋值的话需要定位到具体的那个变量:

a[1][1]=5;

二维数组的输出就涉及到了循环嵌套:

for(int i=1;i<=10;i++)  for(int j=1;j<=10;j++)    cin>>a[i][j];

在这里,i指行,j指列。用动图来演示应该比较方便:

a7556ba9c28b8b57345618e921fc9b54.gif

上面这张图就是二维数组输入的顺序。

输出也是一样的道理。

for(int i=1;i<=10;i++){  for(int j=1;j<=10;j++)    cout<" ";  cout<}

和输入稍有不同的地方在于:输出一个表格的时候,每两个数之间要有一个空格,而输出第二行的时候要换行。

如果大家仔细看表格的话,会发现最左上角的是(0,0)。没错,二维数组是从(0,0)开始的。如果你想要一张20x20的表格,但是又不想在第0行和第0列放东西,那么你在定义数组的时候就要定义为a[21][21],和一维数组很相似。

举个例子:

for(int i=1;i<=7;i++)  for(int j=0;j<=5;j++)    cin>>a[i][j];

这段代码中,收到输入信息的其实是这一块:

4e2884b7d6f947b92ce67bb90e175bfd.png

到目前为止,我们已经掌握了很多知识:

if,if-else,for,while,do-while,switch,输入输出,赋值,数组等等。

那么我们能用这些知识做什么呢?

比方说:确定一个数是否为质数?

这个时候我们可以用“模拟”的方法。除了通过背诵的方法确定质数(其实就是打表啦),数学老师还教过我们一种方法,以131举例。

从2开始枚举,一直到sqrt(131)为止(根号131),如果其中有一个数是131的约数,说明它是合数。否则,它就是质数。

这道题作为回家作业的拓展题,先告诉大家几个常用到的数学函数:

int a=sqrt(131);  //sqrt(x)指131的算术平方根。在这里,因为a是整数,所以a会自动向下取整,所以a=11
int a=abs(-11); //abs(x)指x的绝对值,此处a=11
int a=floor(11.9);//floor(x)指x的向下取整,此处a=11
int a=ceil(11.1);//ceil(x)指x的向上取整,此处a=12
//+,-,*,/分别对应加,减,乘,除//%读作模,也就是取余数。例如,5%2=1,9%3=0,11%3=2

注意:以上所有内容,需要加上头文件:

#include

好了,今天的内容就到这里了,下次再见~拜拜~

?在看,点赞,转发

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值