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;
}
目录
相关文章
|
18天前
|
C语言
【C语言】循环语句
C语言中循环语句的相关知识点
19 2
【C语言】循环语句
|
1月前
|
C语言
C语言循环与分支
C语言循环与分支
27 5
|
29天前
|
存储 算法 C语言
二分查找算法的概念、原理、效率以及使用C语言循环和数组的简单实现
二分查找算法的概念、原理、效率以及使用C语言循环和数组的简单实现
|
19天前
|
Linux C语言
【编程小实验】C语言实现:无限循环写入文本文件,支持Ctrl+C中断与数据追加(附完整源码)
在Linux中,文件I/O(输入/输出)是程序与文件进行交互的基本方式,包括读取文件内容和向文件写入数据。这通常通过标准的C库函数来实现,下面是一些基本的文件读写操作和代码示例。
|
26天前
|
Java 程序员 Linux
探索C语言宝库:从基础到进阶的干货知识(类型变量+条件循环+函数模块+指针+内存+文件)
探索C语言宝库:从基础到进阶的干货知识(类型变量+条件循环+函数模块+指针+内存+文件)
24 0
|
1月前
|
C语言
C语言---正方形图案--循环
C语言---正方形图案--循环
|
1月前
|
C语言
C语言----循环---n的k次方
C语言----循环---n的k次方
|
1月前
|
C语言
C语言---循环迭代的方式求第n个斐波那契数
C语言---循环迭代的方式求第n个斐波那契数
|
1月前
|
C语言
C语言---循环迭代---n的阶乘
C语言---循环迭代---n的阶乘
|
1月前
|
C语言
C语言-----分支和循环
C语言-----分支和循环