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,加...