目录

C语言100天练习题记录本

C语言100天练习题【记录本】

C语言经典100题(手把手 编程)

可以在哔哩哔哩找到(url: )

已解决的天数

一,二,五,六,八,十三,十四,十五,十七,二十,二十一,二十三

下面的都是模模糊糊的(值得大家做的)

可以学学这些算法,我是算法白痴,但是我不是白痴

第三天(未解决)

第四天

https://i-blog.csdnimg.cn/direct/67b5513151244fe2a518beed06840912.png

#include <stdio.h>

// 判断是否为闰年
int isLeapYear(int year) {
    return (year % 4 == 0 && year % 100!= 0) || (year % 400 == 0);
}

int main() {
    int year, month, day;
    int days_in_month[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    int total_days = 0;

    printf("请输入年月日:");
    scanf("%d %d %d", &year, &month, &day);

    // 判断闰年,更新二月天数
    if (isLeapYear(year)) {
        days_in_month[1] = 29;
    }

    // 计算天数
    for (int i = 0; i < month - 1; i++) {
        total_days += days_in_month[i];
    }
    total_days += day;

    printf("这是第%d天\n", total_days);

    return 0;
}

第十一天

兔子生崽问题,类似斐波那契数

#include <stdio.h>
//不用递归的做法
int main() {
    int x[20]={1,1};
    for (int  i = 2; i < 13; i++)
    {
        x[i] = x[i-1] + x[i-2];
        printf("%d\n",x[i]);
    }
    return 0;
}

第十二天

求素数,差点给我搞红温了,555555555555

#include <stdio.h>

int main() {
    // 遍历 101 到 199 之间的所有整数
    for (int i = 101; i < 200; i++) {
        int is_prime = 1;  // 每次判断新的数之前,假设 i 是素数
        // 检查 i 是否能被 2 到 i-1 之间的任何整数整除
        for (int j = 2; j < i; j++) {
            if (i % j == 0) {
                is_prime = 0;  // i 不是素数
                break;
            }
        }
        // 如果 i 是素数,则输出 i
        if (is_prime) {
            printf("%d\n", i);
        }
    }
    return 0;
}

第十四天

将一个正整数分解成质因数,写出来了

#include <stdio.h>

int main() {
    int x ;
    printf("请输入要分解的数字:"); 
    scanf("%d,",&x);
        if (x==0 || x==1)
        {
            printf("%d",x);
        }
        for (int i = 2; i < 10; i++)
        {
            if (x%i == 0)
            {
                printf("%d\t",i);
                x = x / i;
                i = 2;
            }
            
        }

    
    
    return 0;
}

第十六天(未解决)

求最大公约数和最小公倍数

第十七天

求字符串里面存在多少数字,字母,空格和其他字符

#include <stdio.h>

int main() {
    char x[100];
    int shuzi = 0;
    int zimu = 0;
    int kongge =0 ;
    int qita = 0;
    printf("请输入字符串:");
    fgets(x,sizeof(x),stdin);
    for (int  i = 0; x[i] !='\0'; i++)
    {   
        if (x[i]=='\n')
        {
            break;
        }
        if (x[i]<='9' && x[i]>='0')
        {
            shuzi++;
        }
        else if ((x[i]>='a' && x[i]<='z') || (x[i]>='A' && x[i]<='Z'))
        {
            zimu ++;
        }
        else if (x[i] == ' ')
        {
            kongge++;
        }else{
            qita++;
        }
    }
    printf("%d %d %d %d\n",shuzi,zimu,kongge,qita);
    
    return 0;
}

第十八天

求s=2+22+222+2222……

#include <stdio.h>
#include <math.h>

int main() {
    int count;
    int bottom;
    int sum = 0;
    int i;

    printf("请输入底数和次数:");
    scanf("%d %d", &bottom, &count);

    for (i = 0; i <= count; i++) {
        sum += (int)pow(bottom, i);
    }

    printf("总数是:%d\n", sum);

    return 0;
}

第十九天(未解决)

1000以内的完数