老師您好,這個(gè)代碼為什么運(yùn)行不了呢 #include"stdio.h"
main(){
int i,s;
i=1,s=0;
while(i<100){
if(i%3==0||i%7==0)
continue;
s+=i;
i++;
}
printf("和是%d",s);
}
![]() ![]() 打卡Lv2
|
huojinihaoma
展開
老師您好,這個(gè)代碼為什么運(yùn)行不了呢 #include"stdio.h"
main(){
int i,s;
i=1,s=0;
while(i<100){
if(i%3==0||i%7==0)
continue;
s+=i;
i++;
}
printf("和是%d",s);
} ![]() 小恒無涯
展開
@ huojinihaoma 你還有個(gè)問題,你這邊i初始值為1,應(yīng)該(i<=100),不然循環(huán)到結(jié)束,最后會(huì)少加100,
或者你把i初始值改成0,先寫i++,再寫s+=i ![]() huojinihaoma
展開
@ huojinihaoma 謝謝老師,這樣就行了#include"stdio.h"
main(){
int i,s;
i=1,s=0;
while(i<100){
if(i%3==0||i%7==0){
i++;continue;
}
s+=i; i++;
}
printf("和是%d",s);
} |
![]() ![]() 學(xué)習(xí)達(dá)人
|
我是芙寧娜的茍
展開
|
![]() ![]() 學(xué)習(xí)達(dá)人
|
hdylnpu
講師
展開
|
![]() ![]() 學(xué)習(xí)達(dá)人
|
wuzhigang1989
展開
老師,while循環(huán)的結(jié)果是2842,for循環(huán)的結(jié)果為2742是什么原因 ![]() hdylnpu
講師
展開
@ wuzhigang1989 你好,這是一個(gè)有趣的問題。
while(i<100){
i++;
if(i%3==0 || i%7==0)
當(dāng)i為99時(shí),i小于100,i++后,i的值為100,100不能被3整除也不能被7整除,100加到和里。
100不小于100,循環(huán)結(jié)束。
對(duì)于for循環(huán)
for(i=0;i<100;i++) {
if(i%3==0 || i%7==0)
當(dāng)i為99時(shí),99小于100,99能被3整除不加。
執(zhí)行i++,i 的值變?yōu)?00,100不小于100,循環(huán)結(jié)束。
也就是說for循環(huán)時(shí)100沒有被加到里面。
如上,期待對(duì)你能有幫助。 |
![]() ![]() 學(xué)習(xí)達(dá)人
|
陳偉7
展開
#include <stdio.h>
main(){
int i,s;
i=0;s=0;
while(i<100){
i++;
if(i%3!=0 || i%7!=0)
s=s+i;
}printf("%d",s);
}
老師,你教的這個(gè)我懂了,但是我試了下不用continue,只用if,這個(gè)用不等于怎么算的是錯(cuò)誤的。沒明白里面的邏輯。 ![]() hdylnpu
講師
展開
@ 陳偉7 你好,為你的探索精神點(diǎn)贊。只有嘗試多種方法,發(fā)現(xiàn)問題,解決問題,才能透徹的理解知識(shí)。
應(yīng)該是 if(i%3!=0 && i%7!=0) s=s+i;
注意理解:if(i%3==0 || i%7==0) continue;
意思是 當(dāng) i 能被3和7中的任意一個(gè)整除時(shí),都不再進(jìn)行程序(不累加當(dāng)前 i 值)
簡(jiǎn)而言之,能夠累加的是 既不能被3整除,也不鞥被7整除。即不能同時(shí)被3和7整除的數(shù)。 |
![]() ![]() 學(xué)習(xí)達(dá)人
|
hdylnpu
講師
展開
|
承擔(dān)因您的行為而導(dǎo)致的法律責(zé)任,
本站有權(quán)保留或刪除有爭(zhēng)議評(píng)論。
參與本評(píng)論即表明您已經(jīng)閱讀并接受
上述條款。