C++中一个常用的句型(两个for(;;)语句连用的重要性)

在一些简单的C++编程中,经常会用到两个for(;;)语句连用的情况,这是一个常用句型,因此感觉也非常重要。下面举两个例子说明一下:

例1.用两个for(;;)语句来进行数组元素大小的排序

#include"stdafx.h"

#include<iostream>

using namespace std;

int main()

{

int i,j,t=0;

int a[10]={0};

//用for循环连续输入10个数存放在数组中

for(i=0;i<10;i++)

{

cin>>a[i];

}

//两个for循环连用,对输入的数值按从小到大的顺序排序

for(i=0;i<10;i++)

for(j=i+1;j<10;j++)

{

if(a[i]>a[j])

{

t=a[i];

a[i]=a[j];

a[j]=t;

}

}

//用for循环对排序好的数组值按从小到大的顺序输出

for(i=0;i<10;i++)

{

cout<<a[i]<<endl;

}

return 0;

}

例2.一条长廊里依次装有n(1 ≤ n ≤ 65535)盏电灯,从头到尾编号1、2、3、…n-1、n。每盏电灯由一个拉线开关控制。开始,电灯全部关着。 有n个学生从长廊穿过。第一个学生把号码凡是1的倍数的电灯的开关拉一下;接着第二个学生把号码凡是2的倍数的电灯的开关拉一下;接着第三个学生把号码凡是3的倍数的电灯的开关拉一下;如此继续下去,最后第n个学生把号码凡是n的倍数的电灯的开关拉一下。n个学生按此规定走完后,长廊里电灯有几盏亮着。 注:电灯数和学生数一致。

程序:

#include "stdafx.h"

#include<iostream>

#define max 65535

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{

int n, i, j,cnt=0, a[max] = { 0 };

cin >> n;

if ((n < 1) || (n>max))

cout << "输入错误!" << endl;

for (i = 1; i <= n; i++)

{

for (j = 1; j <= n; j++)

{

if ((j%i) == 0)

{

a[j] += 1;

a[j] %= 2;

}

}

}

for (i = 1; i<=n; i++)

{

if (a[i]==1)

cnt++;

}

cout << "亮灯数为" << cnt << "盏" << endl;

return 0;

}

一条长廊里依次装有

n(1

n

65535)

盏电灯,从头到尾编号

1

2

3

…n

-1

n

。每

盏电灯由一个拉线开关控制。开始,电灯全部关着。

n

个学生从长廊穿过。第一个学生把号码凡是

1

的倍数的电灯的开关拉一下;接着第二

个学生把号码凡是

2

的倍数的电灯的开关拉一下;接着第三个学生把号码凡是

3

的倍数的

电灯的开关拉一下;如此继续下去,最后第

n

个学生把号码凡是

n

的倍数的电灯的开关拉

一下。

n

个学生按此规定走完后,长廊里电灯有几盏亮着。

注:电灯数和学生数一致。

时间: 2024-11-23 06:31:49

C++中一个常用的句型(两个for(;;)语句连用的重要性)的相关文章

JavaScript中一个方法同时发送两个ajax请求问题

今天在做项目中遇到一个问题,大概是在一个jsp页面同时有一个select下拉搜索条件框和一个Bootstrap表格展示列表.这两个都要通过ajax向后台拿数据,而且要在页面加载时完成.当时的做法是: $(function() { // 加载下拉菜单 selectMenu(); /** 加载页面表格 */ var url = 'xxxx.do'; var col = [ { checkbox : true }, { field : 'operlogid', title : 'xxx', forma

springmvc中针对一个controller方法配置两个url请求

springmvc中针对一个controller方法配置两个url请求 标签: spring mvc孙琛斌 2015-12-10 17:10 2189人阅读 评论(0) 收藏 举报  分类: Spring(8)  版权声明:本文为博主原创文章,未经博主允许不得转载. 记录一个小知识点. 某些应用场景>..你可能需要不同的url请求得到相同的结果,那么你写两个方法总是不太好的,使用下面的方法可以解决这个问题. @RequestMapping(value = { "/item/index.ht

由“Java中一个字符占两个字节”引起

起因 Java中一个字符占两个字节,这和C/C++稍有区别.在C/C++中我们可以通过sizeof运算符方便地知道某个变量类型或对象的大小,那在Java中又如何? 问题出现 Java为什么没有提供sizeof运算符? 要回答这个问题,我们可以从另一个角度来看,那就是为什么C/C++中提供sizeof运算符.这就让人忍不住想到C/C++和Java在内存管理上的区别. 在C中,内存分配和释放的任务交给了程序员,当我们尝试用malloc为某个对象分配一块堆内存时,一个无法逃避的问题是,这个即将被创建的

oracle中,将两个select语句的结果作为一个整体显示出来

如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字.union(或称为联合)的作用是将多个结果合并在一起显示出来.union和union all的区别是,union会自动压缩多个结果集合中的重复结果,而union all则将所有的结果全部显示出来,不管是不是重复.Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序:Union All:对两个结果集进行并集操作,包括重复行,不进行排序:Intersect:对两个

路径中一个点与两个点的区别

在导入js或者样式表的时候,如果我们放在文件夹下面,有时会涉及路径问题找不到我们的引入,曾经我也遇到过相应的问题.解决方法就是在路径前面加点.那么在这个路径中一个点和两个点到底有什么区别呢? 1.一个点:表示当前目录.即类似使用:./juqery.min.js. 2.两个点:表示当前目录的上级目录.类似:<script type="text/javascript" src="../jquery.easyui.min.js"></script>

用一个宏实现求两个数中的最大数

用一个宏实现求两个数中的最大数 在面试或者笔试中,经常会碰到"用一个宏实现求两个数中的最大数"这个题目,一般情况下,大家看到这个问题,觉得很容易实现,这有什么难度呢,随手就是一个: #define MAX(x, y) ((x) > (y) ? (x) : (y)) 注:用括号将宏定义整个括起来,在任何时候,都是一个好习惯. 如果能写出上边这个宏,你这道题的考试就能交差了,然后觉得对自己来说就是随手一写的事儿,那可就大错特错了.因为以上写法的宏定义,虽然也能拿到分数,但是在面试者或

Django中一个项目里怎么使用两个数据库

在django项目中, 一个工程中存在多个APP应用很常见. 有时候希望不同的APP连接不同的数据库,这个时候需要建立多个数据库连接. 1. 修改项目的 settings 配置 在 settings.py 中配置需要连接的多个数据库连接串 2. 设置数据库的路由规则方法 在settings.py中配置DATABASE_ROUTERS 1DATABASE_ROUTERS = ['Prject.database_router.DatabaseAppsRouter'] Project: 建立的djan

Android 图解逆向工程中ARM常用汇编指令(一)

我们走得太快,灵魂都跟不上了. 微小的幸福就在身边,容易满足就是天堂. 在逆向和爆破中我们经常会在IDA中接触到汇编,一般做安卓的不会太了解VB回编等,不太了解的同学可以先查看上篇文章<Android ARM常用的汇编指令合集> 再来继续我们的学习,我们先来看张图. 这个view里面有 PUSH/LDR/SUB/MOVS/BLX/SUBS/BEQ/CMP ,这些差不多都是常见的,不过也不需要看得懂,理解这个指令即可,接下来我们就来分析下这些指令分别有什么作用吧. 先引入 概念性 东西,免得大家

关于jsp商城开发中一些常用框架的介绍

Struts跟Tomcat.Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点,使java商城产品以及jsp商城开发者能更深入的了解其内部实现机制.除此之外,在 java商城开发 中Struts的优点主要集中体现在两个方面:Taglib和页面导航.Taglib是Struts的标记库,比较灵活,能大大提高开发效率.另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的起点.struts历经6年多的发展,是目前用户数最