for語句的一般形式為:
for(表達式1;表達式2;表達式3)
循環(huán)體語句
其中表達式1是初值表達式,對循環(huán)變量賦初值;表達式2是條件表達式,給出循環(huán)的條件;表達式3是步長表達式,改變循環(huán)變量的值,幫助走出循環(huán)。注意for語句后面不能隨意加分號。
do-while語句一般形式為:
do {
循環(huán)體語句
}while(表達式)
三者的區(qū)別在于do-while無論條件是否成立,都會事先做一次循環(huán)。
三種循環(huán)體語句,都可以解決循環(huán)問題,在一定情況下可以互換,for語句一般用在循環(huán)次數已知或者有明顯規(guī)律的題型中,另外兩種則適用于循環(huán)次數未知。
定義變量N為前來查詢的用戶數量,ch判斷性別,h為一方身高,H為另一方身高。輸入查詢用戶數while(N--) 輸入一個字符和一方身高 判斷性別并計算另一方身高 輸出另一方身高end while
輸入數據 | 輸出數據 | 說明 |
---|---|---|
2 M 1.75 F 1.8 | 1.61 1.96 | sample等價 |
2 M 1.00 F 3.0 | 0.92 3.27 | 最高、最矮的男女生 |
1 M 1.09 | 1.00 | 最小N,正好整除 |
1.部分正確:是因為輸出格式錯誤,忘了打回車鍵,沒有換行。2.部分正確:答案錯誤,測試了一下發(fā)現(xiàn)確實是,當最高、最矮的男女生和最大N,隨機數據是錯誤。3.答案正確:我把字符和身高分別輸出,不放一起,結果就對了。
定義變量n,k分別為素數的范圍和個數,若不夠k則按實際輸出,count為真正素數的個數,K存儲k的值,i用于判斷是否為素數,sum為素數的和。輸入n和k,并把k的值存到K中for (; n >= 2 && k > 0; n--) 判斷是否為素數 記錄素數的個數 判斷素數個數是否夠k個 按不同情況輸出“n的值”或“n的值 ”并計算sumend for最后輸出=sum的值
輸入數據 | 輸出數據 | 說明 |
---|---|---|
1000 10 | 997 991 983 977 971 967 953 947 941 937=9664 | 最大數據 |
12 6 | 11 7 5 3 2=28 | 不足k個素數 |
10 1 | 7=7 | 最小數據 |
15 6 | 13 11 7 5 3 2=41 | 正常數據 |
1.部分正確:少考慮了當k正好是素數的個數的情況。2.答案正確:把k剛好為素數的個數的情況加上去就對了。
定義變量ch為輸入的字母及其他字符,item判斷是否為第一個單詞,flag判斷空格,i用于計單詞長度。while((ch = getchar()) != '.') if字符不等于空格 then flag = 1 i else if (flag == 0) 繼續(xù)下一輪循環(huán) else if (item == 0) 輸出i的值 i = 0; flag = 0; item = 1; else 輸出i的值 i = 0; flag = 0; end ifend while if (i && item == 0) 輸出i的值 else if (i) 輸出i的值 end if
輸入數據 | 輸出數據 | 說明 |
---|---|---|
It's great to see you here. | 4 5 2 3 3 4 | sample等價 |
she. | 1 | 一個單詞 |
She is a good girl . | 3 2 1 4 4 | 開頭結尾多空格 |
He is her friend. | 2 2 3 6 | 連續(xù)多個空格 |
1.部分正確:最后一次輸出時,少輸出了一個空格。2.部分正確:當一個單詞時,多輸出了一個空格。3.答案正確:最后多加一個條件,要求輸出不帶空格的,然后就對了。