C语言循环及条件语句

简介: C语言循环及条件语句

一、if语句


1、判断正负数


#include <stdio.h>
int main() {
    int val = 0;
    printf("请输入一个数字:");
    scanf("%d", &val);
    /*if (val >= 0) {
        printf("非负数\n");
    }
    else {
        printf("负数\n");
    }*/
    /*
     * val > 0  *   显示正数
     ****************************
     * val < 0  *   显示负数
     ****************************
     * !val     *   显示零
     * */
    if (val > 0) {
        printf("正数\n");
    }
    else if (val < 0) {
        printf("负数\n");
    }
    else {
        printf("零\n");
    }
    return 0;
}


2、判断奇偶数


#include <stdio.h>
int main() {
    int val = 0;
    printf("请输入一个数字:");
    scanf("%d", &val);
    /*
     *  val < 0                * 显示负数
     ****************************************
     *  val >= 0 && (val & 1)  * 显示奇数
     ****************************************
     *  val >= 0 && !(val & 1) * 显示偶数
     * */
    if (val < 0) {
        printf("负数\n");
    }
    else if (val & 1) {
        printf("奇数\n");
    }
    else if (!(val & 1)) {
        printf("偶数\n");
    }
    return 0;
}


3、判断最小数


#include <stdio.h>
int main() {
    int val = 0, val1 = 0, val2 = 0;
    printf("请输入三个数字:");
    scanf("%d%d%d", &val, &val1, &val2);
    if (val > val1) {
         if (val1 > val2) {
            printf("最小数字是%d\n", val2);
        }
        else {
            printf("最小数字是%d\n", val1);
        }
    }
    else {
        if (val > val2) {
            printf("最小数字是%d\n", val2);
        }
        else {
            printf("最小数字是%d\n", val);
        }
    }
    return 0;
}


4、判断年月日


int main() {
    int year = 0, month = 0;
    printf("请输入年和月:");
    scanf("%d%d", &year, &month);
    /*
     * 1,3,5,7,8,10,12  *   显示31天
     ************************************
     * 4,6,9,11         *   显示30天
     ************************************
     * 2                *   区分平年和闰年
     * */
    if (month == 1 || month == 3 ||
            month == 5 || month == 7 ||
            month == 8 || month == 10 ||
            month == 12) {
        printf("一共有31天\n");
    }
    else if (month == 4 || month == 6 ||
            month == 9 || month == 11) {
        printf("一共有30天\n");
    }
    else if (month == 2) {
        /*
         * 闰年 *   显示29天
         *********************************
         * 平年 *   显示28天
         * */
        if ((!(year & 3)/*后两个二进制数位的内容都是0*/ && (year % 100)) || !(year % 400)) {
            printf("一共有29天\n");
        }
        else {
            printf("一共有28天\n");
        }
    }
    return 0;
}


二、switch语句


#include <stdio.h>
int main() {
    int season = 0;
    printf("请输入代表季节的数字:");
    scanf("%d", &season);
    //计算机用小括号里的数字和大括号里
    //列举出的每个数字依次做对比,如果
    //和某个数字相等就执行这个数字后面
    //的语句
    switch (season) {
        case 0:
            printf("春天\n");
            break;
        case 1:
            printf("夏天\n");
            break;
        case 2:
            printf("秋天\n");
            break;
        case 3:
            printf("冬天\n");
            break;
        default:
            printf("不认识的数字\n");
            break;
    }
    return 0;
}


三、for循环


#include <stdio.h>
int main() {
    int num = 0;  //循环变量
    for (num = 1/*开始数字*/;num <= 5/*循环变量和结束数字之间的关系*/;num++/*每次循环变量的变化规律*/) {
        printf("%d ", num);
    }
    printf("\n");
    return 0;
}
运行结果:
1 2 3 4 5
#include <stdio.h>
int main() {
    int min = 0, max = 0, num = 0, sum = 0;
    printf("请输入两个数字:");
    scanf("%d%d", &min, &max);
    //调整两个变量的内容,让max里的数字大,
    //min里的数字小
    if (max < min) {
        //负责处理max变量内容小的情况
        //只需要把max和min的内容交换一下就可以了
        min ^= max;
        max ^= min;
        min ^= max;
    }
    for (num = min;num <= max;num++) {
        //循环变量从小到大依次代表min和max
        //之间的所有数字
        sum += num;  //把循环变量代表的每个数字加到sum变量里去
    }
    printf("求和结果是%d\n", sum);
    return 0;
}
运行结果:
请输入两个数字:15 13
求和结果是42


鸡兔同笼,一共有40个头,100条腿


#include <stdio.h>
int main() {
    int num = 0;
    for (num = 0;num <= 40;num++) {
        //把0到40之间的每个数字作为兔子
        //的数量测试一遍
        if (4 * num + 2 * (40 - num) == 100) {
            //循环变量num就是兔子的数量
            printf("兔子有%d只,鸡有%d只\n", num, 40 - num);
            break;
        }
    }
    printf("num是%d\n", num);
    return 0;
}


for嵌套语句


#include <stdio.h>
int main() {
    int num = 0, num1 = 0;
    for (num = 1;num <= 5;num++) {  //循环变量代表每行的行号
        for (num1 = 5;num1 >= num;num1--) {  //循环变量代表每次要显示的数字
            printf("%d", num1);
        }
        printf("\n");  //每次行号变化之前显示换行
    }
    return 0;
}
运行结果:
54321
5432
543
54
5


四、continue语句,结束本次循环,继续下次循环


#include <stdio.h>
int main() {
    int num = 0;
    for (num = 1;num <= 5;num++) {
        printf("%d\n", num);
        if (num == 3) {
            continue;
        }
        printf("%d\n", 10 + num);
    }
    return 0;
}


五、随机数


#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
    srand(time(0));
    printf("%d\n", rand());
    printf("%d\n", rand());
    printf("%d\n", rand());
    return 0;
}


六、while循环


#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
    int val = 0, guess = 0;
    srand(time(0));
    //val = rand() % 100;
    while (val != guess/*没猜对的时候应该继续猜*/) {
        printf("请猜一个数字:");
        scanf("%d", &guess);
        if (guess > val) {
            printf("猜大了\n");
        }
        else if (guess < val) {
            printf("猜小了\n");
        }
        else {
            printf("猜对了\n");
        }
    }
    return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
    int val = 0, guess = 0;
    srand(time(0));
    //val = rand() % 100;
    do {
        printf("请猜一个数字:");
        scanf("%d", &guess);
        if (guess > val) {
            printf("猜大了\n");
        }
        else if (guess < val) {
            printf("猜小了\n");
        }
        else {
            printf("猜对了\n");
        }
    } while (val != guess);
    return 0;
}


求公约数


#include <stdio.h>
int main() {
    int val = 0, val1 = 0, tmp = 0;
    printf("请输入两个数字:");
    scanf("%d%d", &val, &val1);
    while (val % val1/*余数不是0表示两个数字之间没有整数倍关系*/) {
        tmp = val % val1;   //计算两个数字之间的余数并记录下来
        val = val1;  //把比较大的数字换成原来比较小的数字
        val1 = tmp;  //把比较小的数字换成余数
    }
    printf("最大公约数是%d\n", val1);
    return 0;
}
目录
相关文章
|
15天前
|
C语言
爱上C语言:分支与循环(分支篇)多个if与if — else if区别
爱上C语言:分支与循环(分支篇)多个if与if — else if区别
|
1月前
|
C语言
利用C语言中的while语句实现循环
利用C语言中的while语句实现循环
18 0
|
1月前
|
C语言
C语言的循环程序
C语言的循环程序
11 0
|
1月前
|
C语言
介绍c语言中的分支,循环
介绍c语言中的分支,循环
22 0
|
22天前
|
C语言
【C语言】“分⽀与循环第一章:开启创新之门,探索无尽可能性的第一篇章“2
【C语言】“分⽀与循环第一章:开启创新之门,探索无尽可能性的第一篇章“2
|
1月前
|
机器学习/深度学习 程序员 编译器
c语言从入门到实战——分支和循环
C语言是结构化的程序设计语言,这里的结构指的是顺序结构、选择结构、循环结构,C语言是能够实 现这三种结构的,其实我们如果仔细分析,我们日常所见的事情都可以拆分为这三种结构或者这三种结构的组合。 我们可以使用 if 、 switch 实现分支结构,使用 for 、 while 、 do while 实现循环结构。
80 0
c语言从入门到实战——分支和循环
|
1月前
|
C语言
20.C语言:用continue语句提前终止循环
20.C语言:用continue语句提前终止循环
14 0
|
1月前
|
C语言
19.C语言:用break语句提前终止循环
19.C语言:用break语句提前终止循环
24 0
|
1月前
|
机器学习/深度学习 自然语言处理 并行计算
4.c语言:用for语句实现循环
4.c语言:用for语句实现循环
23 0
|
1月前
3.c语言:用while语句实现循环
3.c语言:用while语句实现循环
18 1