求c語言挑錯 開關燈問題 c語言 n盞燈

時間 2025-05-29 05:10:23

1樓:網友

#include

#include

int main()

int a[10000];

a[10000]=0;

int i,j,n,w;

w=0;scanf("%d",&n);

for(j=2;j<=n;j++)你已經把燈都關薯棗了,所以是從2開始。

for(i=2;i<=n;i++)一樣的道理if (i%j==0)

if (a[i]==0) a[i]=1;

else a[i]=0;}

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

if (a[i]==1) /因為是輸出開著的燈,所以是1的都輸出,乙個判斷就好。

if(w==0) w=1;

else printf("

printf(" d",i);

return 0;

都加註釋了 不數納拆明白再茄侍問。

2樓:曦翼稚魚

#include

#include

int main()

int a[10000]=;這裡賦值要注意。

int i,j,n,w;

w=0; scanf("%d",&n);

for(j=2;j<=n;j++)孫襲如樓上螞陸所說從2開悶凱頃始就好。

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

if (i%j==0)

if (a[i]==0)

a[i]=1;

else a[i]=0;

elsea[i]=a[i];

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

if (a[i]==1)

printf("%d\t",i);

return 0;

3樓:流星不死

#include

int main()

int a[100];int b[100];int c[100]=,f=-1,i,j,n;

scanf("%d",&n);

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

a[i-1]=i;

b[i-1]=i;

c[i-1]=-1;

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

f=-f;for(j=i;j<=n;j++)

if(j%i==0)

c[i-1]=f;

for(i=0;iif(c[i]==1)

printf("%d\枯告t",i);

不知沒悄明運中道結果對不對 你看看。

4樓:天使

我懷疑頌中能執行嗎。

不能這樣賦值。

int a[10000];/吵櫻芹/就是定義了a一共有10000個元素從a[0]到a[9999]

a[10000]=0;//a[10000]哪來的。

應公升畢該是a[10000]=;吧。

c語言開關燈問題,麻煩大神們幫我看看這個程式**錯了啊,結果不對啊!

5樓:就很迷

兩個錯誤:

1、int a[6000]=;這句。你這只是將a[0]賦值1,其他都是0,陣列預設以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;

elsea[j]=0;

這樣就沒問題了。

c語言n和n的區別求大神講解,C語言 n 和 n的區別,求大神講解。

元子童通亮 寫個 測試一下 intmain void int n a n printf d,n n printf d n getch return0 輸出結果是4,5 所以,n 是指標n加1 n 表示n指向的內容加1 c語言裡,n 和 n單目運算有什麼區別麼?老師說的當時懂,後來又忘了 請高手指點!...

c語言問題,C語言問題。

考驕 用指標將兩個字串連結接起來,前一個while迴圈,確定s1字串走完,第二個while開始將s1的逐個字元複製給s1走完,也就是末尾,這樣就可以把字串都匯入到s1中 最後一個空寫的應該寫return s1 長魚修韋 很久沒碰這東西了。我來解釋下 第一個while的迴圈是為了讓指標指向第一個字串的...

C語言問題,c語言問題?

自我程式設計 列印輸出乙個ok。因為前面迴圈for語句有分號結束。所以後面的printf語句不在迴圈內,不受迴圈語句影響。 理佑平鄲胭 結果是22 7 7 8 22 你可以將 i i i i是先 1再計算,還有這裡的運算順序是從左到右,所以應該是7 7 i 14 8 22 前兩個相加時,i先加1,加...