C语言的学习之旅Day1

一系列C语言程序展示了for和while循环的使用,包括计算阶乘、检查素数。程序通过不断减小或增加变量来遍历数字,判断合数与素数,并在找到素数时使用break跳出循环。同时,对于循环结构的理解和优化,如使用continue跳过不必要运算,体现了C语言控制流程的灵活性。
摘要由CSDN通过智能技术生成

 first

#include <stdio.h>
int main()
{
    int n=0,factor=1;
    printf("请输入n:");
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
        factor*=i;
    printf("%d!=%d",n,factor);
    return 0;
}

练习for的使用方法

second

#include <stdio.h>
int main()
{
    printf("请输入n:");
    int n=0,factor=1;
    scanf("%d",&n);
    for(;n>=1;n--)
        factor*=n;
    printf("阶乘为%d",factor);
    return 0;
}

for括号里的语句可省略,但;不能省略

third

#include <stdio.h>
int main()
{
    int prime=0;
    printf("请输入一个整数:");
    scanf("%d",&prime);
    int i=prime,reminder=0,n=0;
    do{
        i--;
        reminder=prime%i;
        if(reminder==0)
            n++;
    }while(i>2);
    if(n>0)
        printf("%d是合数\n",prime);
    else
        printf("%d是素数\n",prime);
    return 0;
}

练习do-while循环

逐渐递减

n=0要放在循环外,否则n会一直保持>0的状态

n的引入,用数字表示实际含义的思想

fourth

#include <stdio.h>
int main()
{
    printf("请输入一个整数:");
    int prime;
    int n=0,i=0;
    scanf("%d",&prime);
    for(i=2;i<prime;i++){
        int reminder=prime%i;
        if(reminder==0){
           n++;
            break;
        }
    }
    if(n==0){
        printf("%d是素数\n",prime);
    }
    else{
        printf("%d是合数\n",prime);
    }
    return 0;
}

判断素数合数:递增

break的用法:跳出循环

fifth

#include <stdio.h>
int main()
{
    printf("请输入一个整数:");
    int prime=0;
    scanf("%d",&prime);
    int reminder=0,x=0;
    for(int i=2;i<prime;i++){
        reminder=prime%i;
        if(reminder>0){
            continue;
        }
        x++;
        printf("%d\n",i);
        }
    if(x>0)
        printf("该数为合数\n");
    else
        printf("该数为素数\n");
    return 0;
}

for的用法复习

continue的用法:跳过本轮循环,直接进行下一轮(感觉用起来和else差不多,只不过意思相反)

sixth

#include <stdio.h>
int main()
{
    int x=0;
    int cnt=0;
    for(x=2;x<100;x++){
        int n=0,i=0;
        int reminder=0;
        for(i=2;i<x-1;i++){
            reminder=x%i;
            if(reminder==0){
                n++;
                break;
            }
        }
        if(n==0){
            printf("%d\n",x);
            cnt++;
        }
    }
    printf("\n");
    printf("在0到100之间共有%d个素数",cnt);
    return 0;
}

嵌套循环

get到了for循环的优势:直接将本循环的条件都写出来,避免因为分不清层次而混乱

seventh

#include <stdio.h>
int main()
{
    int x=2;
    int i=0,reminder=0,cnt=0,n;
    while(cnt<=50){
        for(i=2;i<x;i++){
            reminder=x%i;
            n=0;
            if(reminder==0){
                n++;
                break;
            }
        }
        if(n==0){
            printf("%d\n",x);
            cnt++;
        }
        
        x++;
    }
    return 0;
}

这个代码写的时候出了好多错……

主要问题就是分不清层次,逻辑关系混乱

嵌套循环最好用for

不过要想锻炼一下的话也可以试着用while

last

今日学习结束

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值