1. 程式人生 > >《明解C語言》示例程式碼和練習程式碼[第3章]

《明解C語言》示例程式碼和練習程式碼[第3章]

第3章 分支結構程式


示例程式碼:


示例程式碼 3-1

/*
    輸入的整數能被5整除嗎 
*/

#include <stdio.h>

int main(void)
{
    int vx;
    
    printf("請輸入一個整數:");
    scanf("%d", &vx);
    
    if (vx % 5)
        puts("輸入的整數不能被5整除。");    
        
    return (0);
}

示例程式碼 3-2

/*
    輸入的整數是奇數嗎 
*/

#include <stdio.h>

int main(void)
{
    int no;
    
    printf("請輸入一個整數:");
    scanf("%d", &no);
    
    if (no % 2)
        puts("輸入的整數是奇數。");    
        
    return (0);
}

示例程式碼 3-3

/*
    輸入的整數能否被5整除 
*/

#include <stdio.h>

int main(void)
{
    int vx;
    
    printf("請輸入一個整數:");
    scanf("%d", &vx);
    
    if (vx % 5)
        puts("該整數不能被5整除。");   
    else
        puts("該整數能被5整除。"); 
        
    return (0);
}

示例程式碼 3-4

/*
    輸入的整數是奇數還是偶數 
*/

#include <stdio.h>

int main(void)
{
    int no;
    
    printf("請輸入一個整數:");
    scanf("%d", &no);
    
    if (no % 2)
        puts("該整數是奇數。");   
    else
        puts("該整數是偶數。"); 

    return (0);
}

示例程式碼 3-5

/*
    輸入的整數值是否為0 
*/

#include <stdio.h>

int main(void)
{
    int num;
    
    printf("請輸入一個整數:");
    scanf("%d", &num);
    
    if (num)
        puts("該整數不是0。");   
    else
        puts("該整數是0。"); 
        
    return (0);
}

示例程式碼 3-6

/*
    輸入的兩個整數相等嗎 
*/

#include <stdio.h>

int main(void)
{
    int x1, x2;
    
    puts("請輸入兩個整數。");
    printf("整數1:");    scanf("%d", &x1);    
    printf("整數2:");    scanf("%d", &x2);
    
    if (x1 == x2)
        printf("它們相等。\n");
    else
        printf("它們不相等。\n"); 
    
    return (0); 
}

示例程式碼 3-7

/*
    輸入的兩個整數相等嗎 (第二版) 
*/

#include <stdio.h>

int main(void)
{
    int x1, x2;
    
    puts("請輸入兩個整數。");
    printf("整數1:");    scanf("%d", &x1);    
    printf("整數2:");    scanf("%d", &x2);
    
    if (x1 != x2)
        printf("它們不相等。\n");
    else
        printf("它們相等。\n"); 

    return (0); 
}

示例程式碼 3-8

/*
    個位數是5嗎 
*/

#include <stdio.h>

int main(void)
{
    int vx;
    
    printf("請輸入一個整數:");
    scanf("%d", &vx);
    
    if (vx % 10 == 5)    
        puts("該整數的個位數是5。");

    return (0);
}

示例程式碼 3-9

/*
    判斷輸入整數的符號 
*/

#include <stdio.h>

int main(void)
{
    int no;
    
    printf("請輸入一個整數:");
    scanf("%d", &no);
    
    if (no == 0)    
        puts("該整數為0。");
    else if (no > 0)
        puts("該整數為正數。");
    else
        puts("該整數為負數。");
        
    return (0);
}

示例程式碼 3-10

/*
    顯示出輸入的兩個整數中較大的數 
*/

#include <stdio.h>

int main(void)
{
    int n1, n2;
    
    puts("請輸入兩個整數:");
    printf("整數A:");    scanf("%d", &n1);
    printf("整數B:");    scanf("%d", &n2);
    
    if (n1 > n2)
        printf("較大的數是%d。\n", n1);
    else
        printf("較大的數是%d。\n", n2);
    
    return (0);
}

示例程式碼 3-11

/*
    顯示出輸入的兩個整數中較大的數並顯示 
*/

#include <stdio.h>

int main(void)
{
    int n1, n2, max;
    
    puts("請輸入兩個整數:");
    printf("整數A:");    scanf("%d", &n1);
    printf("整數B:");    scanf("%d", &n2);
    
    if (n1 > n2)
        max = n1;
    else
        max = n2;
        
    printf("較大的數是%d。\n", max);
    
    return (0);
}

示例程式碼 3-12

/*
    計算輸入的三個整數中的最大值並顯示 
*/

#include <stdio.h>

int main(void)
{
    int n1, n2, n3, max;
    
    puts("請輸入三個整數。");
    printf("整數1:");    scanf("%d", &n1);    
    printf("整數2:");    scanf("%d", &n2);
    printf("整數3:");    scanf("%d", &n3);
    
    max = n1;
    if (n2 > max)    max = n2;
    if (n3 > max)    max = n3;
    
    printf("最大值是%d。\n", max);

    return (0); 
}

示例程式碼 3-13

/*
    計算輸入的兩個整數中較大的數並顯示(條件運算子) 
*/

#include <stdio.h>

int main(void)
{
    int n1, n2, max;
    
    puts("請輸入兩個整數:");
    printf("整數A:");    scanf("%d", &n1);
    printf("整數B:");    scanf("%d", &n2);
        
    max = (n1 > n2) ? n1 : n2;             // 將較大的值賦給max    
    
    printf("較大的數是%d。\n", max);

    return (0);
}

示例程式碼 3-14

/*
    計算輸入的兩個整數的差並顯示 
*/

#include <stdio.h>

int main(void)
{
    int n1, n2;
    
    puts("請輸入兩個整數:");
    printf("整數A:");    scanf("%d", &n1);
    printf("整數B:");    scanf("%d", &n2);
        
    printf("它們的差是%d。\n", (n1 > n2) ? n1 - n2 : n2 - n1);
    
    return (0);
}

示例程式碼 3-15

/*
    計算輸入的兩個整數中較大數和較小數並顯示 
*/

#include <stdio.h>

int main(void)
{
    int n1, n2, max, min;
    
    puts("請輸入兩個整數:");
    printf("整數A:");    scanf("%d", &n1);
    printf("整數B:");    scanf("%d", &n2);
    
    if (n1 > n2) {
        max = n1;
        min = n2;       
    } else {
        max = n2;
        min = n1;
    }  
    
    printf("較大的數是%d。\n", max);
    printf("較小的數是%d。\n", min);
    
    return (0);
}

示例程式碼 3-16

/*
     顯示輸入月份所處的季節 
*/

#include <stdio.h>

int main(void)
{
    int month;                  // 月 
    
    printf("請輸入月份:");
    scanf("%d", &month);
    
    if (month >= 3 && month <= 5)
        puts("春天"); 
    else if (month >= 6 && month <= 8)
        puts("夏天"); 
    else if (month >= 9 && month <= 11)
        puts("秋天");
    else if (month == 1 || month == 2 || month == 12)
        puts("冬天");
    else
        puts("輸入月份不存在!!\a");
        
    return (0);    
}

示例程式碼 3-17

/*
    顯示出輸入整數除以3的餘數 
*/

#include <stdio.h>

int main(void)
{
    int num;
    
    printf("請輸入一個整數:");
    scanf("%d", &num);
    
    if (num % 3 == 0)
        puts("該數能被3整除。");
    else if (num % 3 == 1)
        puts("該數除以3的餘數是1。");
    else
        puts("該數除以3的餘數是2。"); 
        
    return (0);
}

示例程式碼 3-18

/*
    顯示出輸入整數除以3的餘數 (switch語句)
*/

#include <stdio.h>

int main(void)
{
    int num;
    
    printf("請輸入一個整數:");
    scanf("%d", &num);
    
    switch (num % 3) {
        case 0:
            puts("該數能被3整除。");
            break;
        case 1: 
            puts("該數除以3的餘數是1。");
            break;
        case 2:
            puts("該數除以3的餘數是2。");      
    }

    return (0);
}

示例程式碼 3-19

/*
    確認switch語句動作的程式 
*/

#include <stdio.h>

int main(void)
{
    int sw;
    
    printf("請輸入一個整數:");
    scanf("%d", &sw);
    
    switch (sw) {
        case 1: puts("A");    puts("B");    break;
        case 2: puts("C");    break;
        case 5: puts("D");    break;
        case 6:
        case 7: puts("E");    break;
        default : puts("F");    break;        
    }
    
    return (0);
}


練習程式碼 :


練習程式碼 e3-1

/*
    判斷是否為約數 
*/

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int a, b;
    
    puts("請輸入兩個整數。");
    printf("整數A:");    scanf("%d", &a);    
    printf("整數B:");    scanf("%d", &b);
    
    if (a % b)
        printf("B不是A的約數。\n");
    else
        printf("B是A的約數。\n"); 
    
    return (0); 
}

練習程式碼 e3-2

/*
    關係運算符 
*/

#include <stdio.h>

int main(void)
{
    int a, b;
    
    puts("輸入兩個整數:");
    printf("整數a:");    scanf("%d", &a);
    printf("整數b:");    scanf("%d", &b);
    
    printf("%d > %d,   %d\n", a, b, a > b);
    printf("%d < %d,   %d\n", a, b, a < b);
    printf("%d = %d,   %d\n", a, b, a == b);
    printf("%d >= %d,  %d\n", a, b, a >= b);
    printf("%d <= %d,  %d\n", a, b, a <= b);
    
    return (0);
}

練習程式碼 e3-3

/*
    顯示絕對值 
*/

#include <stdio.h>

int main(void)
{
    int no;
    
    printf("請輸入一個整數:");
    scanf("%d", &no);
    
    if (no < 0)
        printf("絕對值是%d。\n", -no);
    else    
        printf("絕對值是%d。\n", no);

    return (0);
}

練習程式碼 e3-4

/*
    判斷大小 
*/

#include <stdio.h>

int main(void)
{
    int n1, n2;
    
    puts("請輸入兩個整數:");
    printf("整數A:");    scanf("%d", &n1);
    printf("整數B:");    scanf("%d", &n2);
    
    if (n1 < n2)
        printf("A小於B。\n");
    else if (n1 > n2) 
        printf("A大於B。\n");
    else
        printf("A等於B。\n");
    
    return (0);
}

練習程式碼 e3-5

/*
    計算輸入的三個整數中的最小值並顯示 
*/

#include <stdio.h>

int main(void)
{
    int n1, n2, n3, min;
    
    puts("請輸入三個整數。");
    printf("整數1:");    scanf("%d", &n1);    
    printf("整數2:");    scanf("%d", &n2);
    printf("整數3:");    scanf("%d", &n3);
    
    min = n1;
    if (n2 < min)    min = n2;
    if (n3 < min)    min = n3;
    
    printf("最小值是%d。\n", min);

    return (0); 
}

練習程式碼 e3-6

/*
    計算輸入的四個整數中的最大值並顯示 
*/

#include <stdio.h>

int main(void)
{
    int n1, n2, n3, n4, max;
    
    puts("請輸入四個整數。");
    printf("整數1:");    scanf("%d", &n1);    
    printf("整數2:");    scanf("%d", &n2);
    printf("整數3:");    scanf("%d", &n3);
    printf("整數4:");    scanf("%d", &n4);
    
    max = n1;
    if (n2 > max)    max = n2;
    if (n3 > max)    max = n3;
    if (n4 > max)    max = n4;
    
    printf("最大值是%d。\n", max);

    return (0); 
}

練習程式碼 e3-7

/*
    計算輸入的兩個整數的差並顯示 (使用if語句)
*/

#include <stdio.h>

int main(void)
{
    int n1, n2;
    
    puts("請輸入兩個整數:");
    printf("整數A:");    scanf("%d", &n1);
    printf("整數B:");    scanf("%d", &n2);
    
    if (n1 > n2)
        printf("它們的差是%d。\n", n1 - n2);
    else
        printf("它們的差是%d。\n", n2 - n1);
    
    return (0);
}

練習程式碼 e3-8

/*
    計算輸入的三個整數中的最小值並顯示 (使用條件運算子) 
*/

#include <stdio.h>

int main(void)
{
    int n1, n2, n3, min;
    
    puts("請輸入三個整數。");
    printf("整數1:");    scanf("%d", &n1);    
    printf("整數2:");    scanf("%d", &n2);
    printf("整數3:");    scanf("%d", &n3);
    
    min = n1;
    if (n2 < min)    min = n2;
    if (n3 < min)    min = n3;
    
    printf("最小值是%d。\n", n3 < (min = (n1 < n2) ? n1 : n2) ? n3 : min);

    return (0); 
}

練習程式碼 e3-9

/*
    判斷三個整數是否相等 
*/ 

#include <stdio.h>

int main(void)
{
    int n1, n2, n3;
    
    puts("請輸入三個整數。");
    printf("整數A:");    scanf("%d", &n1);
    printf("整數B:");    scanf("%d", &n2);
    printf("整數C:");    scanf("%d", &n3);
    
    if (n1 == n2 && n2 == n3) 
        puts("三個值都相等");
    else if (n1 == n2 || n1 == n3 || n2 == n3)
        puts("有兩個值相等");
    else
        puts("三個值各不相等");
    return (0);       
}

練習程式碼 e3-10

/*
    判斷兩個整數的差(使用邏輯或運算子) 
*/ 

#include <stdio.h>

int main(void)
{
    int n1, n2, max, min;
    
    puts("請輸入兩個整數。");
    printf("整數A:");    scanf("%d", &n1);
    printf("整數B:");    scanf("%d", &n2);
    
    max = (n1 - n2) > 0 ? n1 : n2;
    min = (n1 - n2) < 0 ? n1 : n2;
    
    if (max - min < 10 || max - min == 0)
        puts("它們的差小於等於10");
    else
        puts("它們的差大於等於11"); 
        
    return (0);       
}

練習程式碼 e3-11

/*
    輸入的整數是奇數還是偶數 (switch語句) 
*/

#include <stdio.h>

int main(void)
{
    int no;
    
    printf("請輸入一個整數:");
    scanf("%d", &no);
    
    switch (no % 2) {
        case 0 : puts("該整數是偶數。");    break;
        case 1 : puts("該整數是奇數。");    break;       
    }
        
    return (0);
}

練習程式碼 e3-12

/*
     顯示輸入月份所處的季節 (switch語句) 
*/

#include <stdio.h>

int main(void)
{
    int month;                  // 月 
    
    printf("請輸入月份:");
    scanf("%d", &month);
    
    switch (month) {
        case 1 :
        case 2 :
        case 12 : puts("冬天");   break;
        case 3 :
        case 4 :
        case 5 : puts("春天");    break;
        case 6 :
        case 7 :
        case 8 : puts("夏天");    break;
        case 9 :
        case 10 :
        case 11 : puts("秋天");    break;
        default : puts("輸入月份不存在!!\a");    break;     
    }
        
    return (0);    
}