算法与编程实验报告2.doc_第1页
算法与编程实验报告2.doc_第2页
算法与编程实验报告2.doc_第3页
算法与编程实验报告2.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

算法与编程实验报告编程题目:2指示灯控制指导教师: 杨明慧学生姓名:何凯学生学号:08934312学生班级:08093413所学专业:通信工程一 功能描述n盏灯排成一排,从1到n按顺序依次编号。有n个人也从1到n依次编号。第一个人(1号)将灯全部关闭。第二个人(2号)将凡是2和2的倍数的灯打开。第三个人(3号)将凡是3和3的倍数的灯做相反的处理(如果该灯为打开的,则将它关闭;如果该灯为关闭的,则将它打开)。以后的人都和3号一样,将凡是与自己编号相同的灯,以及是自己编号倍数的灯做相反处理。请编写程序实现。要求:程序中要显示每一个人所做工作的过程,例如:当第i个人操作时,则显示将i和i的倍数的灯做相反的处理过程;当第n个人操作之后,显示灯的最后状态。(建议:采用图形法,显示每一盏灯,并为每一盏灯加边框,用不同的颜色显示开灯或关灯)。 0表示灯灭,1表示灯亮例如:当输入n为7时; 当第一个人操作时 则输出结果为: 000000当第二个人操作时 则输出结果为:0101010 当第三个人操作时 则输出结果为: 0111000当第七个人操作时 则输出结果为: 0111001 二 解决方案1 流程图2 源代码#include void chush(int *p,int n)int i;for(i=0;in;i+)pi=1;void main()int i,k,n,a1000;printf(0表示灯灭,1表示灯亮);printf(请输入一个数 n :n);scanf(%d,&n);chush(a,n); i=o;doprintf(第%d个人操作时,i+1); k=0;doif(k+1)%(i+1)=0) ak=1-ak;printf(%d,ak);k+;while(kn);printf(n);i+;while(in);三 主要函数描述chush是用来对数组进行初始化,即让n盏灯都为灭掉的状态。四 主要技术问题必须对指示灯数组进行初始化,灯的亮灭用1,0表示。题中要求i和i的倍数的灯做相反的处理,可以用取余数是否恒等于0来判断是否要取反。五 实验心得在本次编程过程中遇到了一些问题。在循环创建中遇到了数据溢出问题,do while循环没

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论