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;
}
目录
相关文章
|
3月前
|
C语言
初识C语言2——分支语句和循环语句
初识C语言2——分支语句和循环语句
85 5
|
13天前
|
C语言
【C语言程序设计——循环程序设计】枚举法换硬币(头歌实践教学平台习题)【合集】
本文档介绍了编程任务的详细内容,旨在运用枚举法求解硬币等额 - 循环控制语句(`for`、`while`)及跳转语句(`break`、`continue`)的使用。 - 循环嵌套语句的基本概念和应用,如双重`for`循环、`while`嵌套等。 3. **编程要求**:根据提示在指定区域内补充代码。 4. **测试说明**:平台将对编写的代码进行测试,并给出预期输出结果。 5. **通关代码**:提供完整的代码示例,帮助理解并完成任务。 6. **测试结果**:展示代码运行后的实际输出,验证正确性。 文档结构清晰,逐步引导读者掌握循环结构与嵌套的应用,最终实现硬币兑换的程序设计。
44 19
|
13天前
|
算法 C语言
【C语言程序设计——循环程序设计】求解最大公约数(头歌实践教学平台习题)【合集】
采用欧几里得算法(EuclideanAlgorithm)求解两个正整数的最大公约数。的最大公约数,然后检查最大公约数是否大于1。如果是,就返回1,表示。根据提示,在右侧编辑器Begin--End之间的区域内补充必要的代码。作为新的参数传递进去。这个递归过程会不断进行,直到。有除1以外的公约数;变为0,此时就找到了最大公约数。开始你的任务吧,祝你成功!是否为0,如果是,那么。就是最大公约数,直接返回。
66 18
|
13天前
|
Serverless C语言
【C语言程序设计——循环程序设计】利用循环求数值 x 的平方根(头歌实践教学平台习题)【合集】
根据提示在右侧编辑器Begin--End之间的区域内补充必要的代码,求解出数值x的平方根;运用迭代公式,编写一个循环程序,求解出数值x的平方根。注意:不能直接用平方根公式/函数求解本题!开始你的任务吧,祝你成功!​ 相关知识 求平方根的迭代公式 绝对值函数fabs() 循环语句 一、求平方根的迭代公式 1.原理 在C语言中,求一个数的平方根可以使用牛顿迭代法。对于方程(为要求平方根的数),设是的第n次近似值,牛顿迭代公式为。 其基本思想是从一个初始近似值开始,通过不断迭代这个公式,使得越来越接近。
44 18
|
13天前
|
C语言
【C语言程序设计——循环程序设计】统计海军鸣放礼炮声数量(头歌实践教学平台习题)【合集】
有A、B、C三艘军舰同时开始鸣放礼炮各21响。已知A舰每隔5秒1次,B舰每隔6秒放1次,C舰每隔7秒放1次。编程计算观众总共听到几次礼炮声。根据提示,在右侧编辑器Begin--End之间的区域内补充必要的代码。开始你的任务吧,祝你成功!
44 13
|
13天前
|
存储 C语言
【C语言程序设计——循环程序设计】利用数列的累加和求 sinx(头歌实践教学平台习题)【合集】
项的累加和,一般会使用循环结构,在每次循环中计算出当前项的值(可能基于通项公式或者递推关系),然后累加到一个用于存储累加和的变量中。在C语言中推导数列中的某一项,通常需要依据数列给定的通项公式或者前后项之间的递推关系来实现。例如,对于一个简单的等差数列,其通项公式为。的级数,其每一项之间存在特定的递推关系(后项的分子是其前项的分子乘上。,计算sinx的值,直到最后一项的绝对值小于。为项数),就可以通过代码来计算出指定项的值。对于更复杂的数列,像题目中涉及的用于近似计算。开始你的任务吧,祝你成功!
29 6
|
13天前
|
C语言
【C语言程序设计——循环程序设计】鸡兔同笼问题(头歌实践教学平台习题)【合集】
本教程介绍了循环控制和跳转语句的使用,包括 `for`、`while` 和 `do-while` 循环,以及 `break` 和 `continue` 语句。通过示例代码详细讲解了这些语句的应用场景,并展示了如何使用循环嵌套解决复杂问题,如计算最大公因数和模拟游戏关卡选择。最后,通过鸡兔同笼问题演示了穷举法编程的实际应用。文中还提供了编程要求、测试说明及通关代码,帮助读者掌握相关知识并完成任务。 任务描述:根据给定条件,编写程序计算鸡和兔的数量。鸡有1个头2只脚,兔子有1个头4只脚。
39 5
|
3月前
|
C语言
【c语言】循环语句
循环结构是C语言中用于简化重复操作的重要工具,主要包括while循环、do-while循环和for循环。while循环是最基本的形式,通过不断检查条件来决定是否继续执行循环体。do-while循环则先执行循环体,再检查条件,至少执行一次。for循环逻辑更复杂,但使用频率最高,适合初始化、条件判断和更新变量的集中管理。此外,循环中还可以使用break和continue语句来控制循环的提前终止或跳过当前迭代。最后,循环可以嵌套使用,解决更复杂的问题,如查找特定范围内的素数。
59 6
|
3月前
|
C语言
教你快速理解学习C语言的循环与分支
教你快速理解学习C语言的循环与分支
23 0
|
3月前
|
小程序 C语言
初识C语言:走近循环
初识C语言:走近循环

热门文章

最新文章

相关实验场景

更多