【C語言】for循環的嵌套練習


使用C語言做for循環嵌套練習。此次為個人練習,若有錯誤或需改進敬請提出。

要求:某人想將手中的一張面值100元的人民幣換成10元、5元、2元和1元面值的票子。要求換正好40張,且每種票子至少一張。問:有幾種換法?

第一步,我們需要考慮100元最多能換成幾張10元的;100元最多能換成幾張5元的;100元最多能換成幾張2元的;100元最多能換成幾張1元的。將這四個循環嵌套構成一個框架。

第二步,題目中是將100元換成10元、5元、2元和1元的人民幣。因此,a張10元的人民幣+b張5元的人民幣+c張2元的人民幣+d張1元的人民幣=100元。

第三步,題中也提到這四種面值的人民幣要求正好換40張。因此,a張+b張+c張+d張=40張。

第四步,判斷第二步和第三步是否滿足。若滿足,則累加換法的次數,並將每種的情況打印出來。

代碼如下:

#include <stdio.h>
 
int main() {
    int a, b, c, d, sum, total, n = 0;
    for (a = 1; a < 10; a++)
    {
        for (b = 1; b < 20; b++)
        {
            for (c = 1; c < 50; c++)
            {
                for (d = 1; d < 100; d++)
                {
                    sum = a * 10 + b * 5 + c * 2 + d;
                    total = a + b + c + d;
                    if (sum == 100 && total == 40)
                    {
                        n++;
                        printf("a=%d,b=%d,c=%d,d=%d\n", a, b, c, d);
                    }
                }
            }
        }
    }
    printf("n=%d\n", n);
    return 0;
}

  

運行結果:

a=1,b=5,c=31,d=3
a=1,b=6,c=27,d=6
a=1,b=7,c=23,d=9
a=1,b=8,c=19,d=12
a=1,b=9,c=15,d=15
a=1,b=10,c=11,d=18
a=1,b=11,c=7,d=21
a=1,b=12,c=3,d=24
a=2,b=2,c=34,d=2
a=2,b=3,c=30,d=5
a=2,b=4,c=26,d=8
a=2,b=5,c=22,d=11
a=2,b=6,c=18,d=14
a=2,b=7,c=14,d=17
a=2,b=8,c=10,d=20
a=2,b=9,c=6,d=23
a=2,b=10,c=2,d=26
a=3,b=1,c=29,d=7
a=3,b=2,c=25,d=10
a=3,b=3,c=21,d=13
a=3,b=4,c=17,d=16
a=3,b=5,c=13,d=19
a=3,b=6,c=9,d=22
a=3,b=7,c=5,d=25
a=3,b=8,c=1,d=28
a=4,b=1,c=20,d=15
a=4,b=2,c=16,d=18
a=4,b=3,c=12,d=21
a=4,b=4,c=8,d=24
a=4,b=5,c=4,d=27
a=5,b=1,c=11,d=23
a=5,b=2,c=7,d=26
a=5,b=3,c=3,d=29
a=6,b=1,c=2,d=31
n=34

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM