100盏灯开关问题——C语言 有编号1~100个灯泡,起初所有的灯都是灭的。有100个同学来按灯泡开关,如果灯是亮的,那么按过开关之后,灯会灭掉。如果灯是灭的,按过开关之后灯会亮。 现在开始按开关。 第1个同学,把所有的灯泡开关都按一次(按开关灯的编号: 1,2,3,...100)。 第2个同学,隔一个灯按一次(按开关...
【题目】C语言开灯问题找错描述有n盏灯,编号1~n。第1个人把所有灯打开,第2个人按下所有编号为2的倍数的开关(这些灯将被关掉),第3个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),依次类推。一共有k个人,问最后由哪些灯开着?输入n和k, 1≤k≤n≤1000 。输出开着的灯编号。
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; //灯号赋值 k=b; m=s; p=0;while ( p<n ) //当还有灯没有熄灭时循环...
第一个人(1号)将灯全部关闭,第二个人(2号)将编号为2的倍数的灯打开,第... 一个开关灯的c语言问题。。。没有思路~述假设有N盏灯(N为不大于5000的正整数),从1到N按顺序依次编号,初始时全部处于开启状态;有M个人(M为不大于N的正整数)也从1到M依次编号。第一个人(1号)将灯全部关闭,第二个人(2号)...
应该改为: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;这样就没问题了。
for 语句行,不要加分号。另外逻辑也不太对。看看这个对不对:注意,为了简单,我把数组的第一个元素忽略了,即:只用到1到99个灯。include <stdio.h> include <string.h> int main(){ int n= 100;int lights[100];memset(lights, 0, 100*sizeof(int));for (int i=2;i<n; ++i){ ...
求助:开关灯问题发现..附题目,源代码放二楼假设有N盏灯(N为不大于5000的正整数),从1到N按顺序依次编号,初始时全部处于开启状态;有M个人(M为不大于N的正整数)也从1到M依次编号。第一个人(1号)将灯全部关闭,第二个
美美别急,我有办法!从你刚才列的表格中我们可以发现,像1、3、5、7、9这些单数次数的时候,灯是亮着的;像2、4、6、8、10这些双数次数的时候,灯是不亮的。100是双数,所以灯是不亮的。 天天、美美你们真善于观察,难题在你们的火眼金睛下迎刃而解!亲爱...
一、问题原因 1. 电路短路: 开关指示灯可能一直亮的一个常见原因是电路短路。一旦短路出现,电流将不断通过电路,导致指示灯始终亮着。 2. 开关故障: 如果开关本身损坏或出现故障,则指示灯可能会一直亮着,不论开关的状态如何。 3. 线路接错: 开关指示灯灯一直亮的问题还可能是由于电线接...
一、检查设备连接问题 双控开关灯一会亮一会儿不亮的原因可能是因为多个设备之间的通信出现问题。因此,首先应该检查每个设备是否正常连接。可以拆下双控开关开关盖板,将每个设备逐一检查。如果设备连接松动或是接触不良,应该及时进行更换或修理。 二、检查线路短路...