C語言基礎 -17 流程控制 - if分支

Linux下面畫流程圖的工具:Dia,類似於windows下的viso

編程習慣:先畫流程圖,後coding

wesley@wesley-VirtualBox:~/c/CH03$ cat if.c
#include <stdio.h>
#include <stdlib.h>

int main()
{
        int a = 9,b = 10;
        if(b++ < a)   // compare b and a, not b++ and a
        {
                printf("1\n");
        }
        printf("a = %d,b = %d\n",a,b);
        printf("%d\n",(++b < a, ++a, b++));
        printf("a = %d,b = %d\n",a,b);
        exit(0);
}


wesley@wesley-VirtualBox:~/c/CH03$ make if
cc     if.c   -o if
wesley@wesley-VirtualBox:~/c/CH03$ ./if
a = 9,b = 11
12
a = 10,b = 13
wesley@wesley-VirtualBox:~/c/CH03$ cat if1.c
#include <stdio.h>
#include <stdlib.h>

int main()
{
        int a = 1,b = 1,c = 2;
        if(a == b)
        {
                if(b == c)
                        printf("a == b == c\n");
        else
                printf("a != b\n");
        }
        exit(0);
}
wesley@wesley-VirtualBox:~/c/CH03$ make if1
cc     if1.c   -o if1
wesley@wesley-VirtualBox:~/c/CH03$ ./if1
a != b

else僅與最近的if匹配

wesley@wesley-VirtualBox:~/c/CH03$ cat if2.c
#include <stdio.h>
#include <stdlib.h>

int main()
{
        int score;
        printf("Enter a score:[0:100]:");
        scanf("%d",&score);

        if(score < 0 || score > 100)
        {
                fprintf(stderr,"Input Error!\n");
                exit(1);
        }
        if(score <= 100 && score >= 90)
                puts("A");
        if(score < 90 && score >= 80)
                puts("B");
        if(score < 80 && score >= 70)
                puts("C");
        if(score < 70 && score >= 60)
                puts("D");
        if(score < 60 && score >= 0)
                puts("E");
        exit(0);
}

                                                                                                                                                                                               
wesley@wesley-VirtualBox:~/c/CH03$ make if2
cc     if2.c   -o if2
wesley@wesley-VirtualBox:~/c/CH03$ ./if2
Enter a score:[0:100]:100
A
wesley@wesley-VirtualBox:~/c/CH03$ ./if2
Enter a score:[0:100]:90
A
wesley@wesley-VirtualBox:~/c/CH03$ ./if2
Enter a score:[0:100]:23
E
                                                                                                                                                                                         wesley@wesley-VirtualBox:~/c/CH03$ cat if3.c
#include <stdio.h>
#include <stdlib.h>

int main()
{
        int score;
        printf("Enter a score:[0:100]:");
        scanf("%d",&score);

        if(score < 0 || score > 100)
        {
                fprintf(stderr,"Input Error!\n");
                exit(1);
        }
        if(score >= 90)
                puts("A");
                else if(score >=80)
                        puts("B");
                        else if(score >= 70)
                                puts("C");
                                else if(score >= 60)
                                        puts("D");
                                        else if(score >= 0)
                                                puts("E");
        exit(0);
}
wesley@wesley-VirtualBox:~/c/CH03$ make if3
cc     if3.c   -o if3
wesley@wesley-VirtualBox:~/c/CH03$ ./if3
Enter a score:[0:100]:90
A
wesley@wesley-VirtualBox:~/c/CH03$ ./if3
Enter a score:[0:100]:50
E
wesley@wesley-VirtualBox:~/c/CH03$ cat if4.c
#include <stdio.h>
#include <stdlib.h>

int main()
{
        int year;
        printf("Enter a year:");
        scanf("%d",&year);

        if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
                printf("%d is leap year\n",year);
        else
                printf("%d is not leap year\n",year);
        exit(0);
}
wesley@wesley-VirtualBox:~/c/CH03$ make if4
cc     if4.c   -o if4
wesley@wesley-VirtualBox:~/c/CH03$ ./if4
Enter a year:2020
2020 is leap year
wesley@wesley-VirtualBox:~/c/CH03$ ./if4
Enter a year:2019
2019 is not leap year

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章