第一个人(1号)将灯全部关闭,第二个人(2号)将编号为2的倍数的灯打开,第三个人(3号)将编号为3的倍数的灯做相反处理(即将打开的灯关闭,将关闭的灯打开)。依照编号递增顺序,以后的人都和3号一样,将凡是自己编号倍数的灯做相反处理。 请问:当第M个人操作之后,哪几盏灯是关闭的,按从小到大输出其编号,其间用...
100盏灯开关问题——C语言 有编号1~100个灯泡,起初所有的灯都是灭的。有100个同学来按灯泡开关,如果灯是亮的,那么按过开关之后,灯会灭掉。如果灯是灭的,按过开关之后灯会亮。 现在开始按开关。 第1个同学,把所有的灯泡开关都按一次(按开关灯的编号: 1,2,3,...100)。 第2个同学,隔一个灯按一次(按开关...
void main(){ int n,b,s; //n总灯数,b开始数的灯号,s间隔 int a[256],i,k,m,p; //a存放灯号,k当前数到位置,m当前数到亮灯计数,p熄灭灯数 scanf("%d%d%d",&n,&b,&s); if ( n>256 ) n=256; //约数最多256盏灯 for ( i=0;i<n;i++ ) a[i]=i; //灯号...
include "stdio.h"int main(int argc,char *argv[]){char lmp[5001];int i,j,N,M;printf("Please enter N & M(int 0<N<5001, 0<M<=N)...\n");if(scanf("%d%d",&N,&M)!=2 || N<1 || N>5000 || M<1 || M>N){//保证输入的N,M符合要求,否则退出printf("Input e...
unsigned int x, y;for(x = Time; x > 0; x--)for(y = 120; y > 0; y--);} int main(void){ LED1_01 = 1; //打开LED灯点亮 while(1){ if(KEY0_01 == 0) //检测按键是否按下 { Delay_1ms(10); //延时去抖动 if(KEY0_01 == 0) //确定按键按下 { ...
应该改为:int a[6000];for(i=0;i<6000;i++)a[i]=1;2、第二层循环里:if(a[j]==0)a[j]=1;if(a[j]==1)a[j]=0;这个语句把所有的灯都关闭了,因为如果关了,就打开;打开后又关了。逻辑不对,改成:if(a[j]==0)a[j]=1;else a[j]=0;这样就没问题了。
2、编写相应的代码:#include<reg52.h> //定义单片机的头文件sbit led=P2^0; //定义单片机的管脚,void main(void) //主函数{ while(1) //无限循环 {led=0x1f; //点亮前面三个灯。这里是十六进制的换算, //不懂得可以查一下资料 }。3、打开烧写软件,点击【打...
C语言开灯问题找错描述 有n盏灯,编号1~n。第1个人把所有灯打开,第2个人按下所有编号为2的倍数的开关(这些灯将被关掉),第3个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),依次类推。一共有k个人,问最后由哪些灯开着? 输入 n和k,1≤k≤n≤1000。 输出 开着的灯编号。 样...
要求不明确。用什么型号单片机?用开关k1控制四盏灯一起亮灭,还是分别控制每盏灯亮灭?下面以51单片机为例,P1^0接按键到地,P0^0~3以灌电流驱动方式分别接led1~led4。用Kei uVisionl编译。1.控制四盏灯一起亮灭 include<reg51.h> sbit key1 = P1^0;sbit led1 = P0^0;sbit led2 =...
基于单片机(C语言控制) 89C51与8个发光二极管相连实现一开关花样流水控制程序设计及Proteus仿真实例 一、源程序代码: #include<reg52.h> #include<intrins.h> #define uint unsigned int #define uchar unsigned char sbit key=P2^0; void delay(uint x)...