C语言分支与循环学习(三)

今天主要学习了循环的嵌套,goto语句,flag标记,sqrt和 strcmp函数,下面我将今天所写代码分享给大家

1.素数的判断
int main()

{
    int a = 0, b = 0;
    for (a = 100; a <= 200; a++) {
        int flag = 1;
        for (b = 2; b <= a - 1; b++) {
            if (a % b == 0) { flag = 0; break; }
        }
        if (flag == 1) printf("%d\n", a);
    }
    return 0;
}


通过双重循环找出100-200之间的素数,外层循环遍历每个数,内层循环检查是否能被2到自身-1的数整除。

素数判断优化:

int main()

{
    int a = 0, b = 0;
    for (a = 101; a <= 200; a += 2) {
        int flag = 1;
        for (b = 2; b <= sqrt(a); b++) {
            if (a % b == 0) { flag = 0; break; }
        }
        if (flag == 1) printf("%d\n", a);
    }
    return 0;
}


优化:1.跳过偶数;2。只需检查到平方根;3。从101开始每次加2。

goto语句;


int main()

{
    printf("你很好\n");
    goto niu;
    printf("年后");
    niu:
    printf("恭喜发财");
    return 0;
}


goto可以跳出多层嵌套到到设置位置,会跳过"年后"直接打印"恭喜发财"。

关机程序:
int main()

{
    char input[20] = "1";
    system("shutdown -s -t 100");
    warn:
    printf("请输入"停止执行"取消关机\n");
    scanf(" %s", input);
    if (strcmp(input, "停止执行") == 0) 
        system("shutdown -a");
    else goto warn;
    return 0;
}


这段代码能实现100秒倒计时关机功能,需声明头文件#include<stdlib.h>,可通过输入特定命令取消。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值