C语言基础练习

1、判断年份是否是闰年

#include <stdio.h>

int main()
{
    int year;
    int leap;

    printf("Please input a year:");
    scanf("%d",&year);
    //输入年份

    if((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
    {
        printf("%d is a leap year!\n",year);
    }
    else
    {
        printf("%d is not a leap year!\n",year);
    }
    //如果输入的年份能整除4但不能整除100或者能整除400就是闰年

    return 0;
}

2、判断是否是素数

#include <stdio.h>

int main()
{
    int prime(int n);                       // 声明判断素数函数
    int n = 0;
    int i = 0;

    for( n = 100; n <= 200; n++ )
    {
        i = prime(n);                       //调用判断素数函数
        if( i == 1)                         
        //当返回值为1时,说明该数为素数,输出这个数并让其占四个字符空间
        {
            printf("%4d",n);
        }
    }
    printf("\n");

    return 0;
}

int prime(int n)
{
    int i;
    for( i = 2; i < n; i++ )
    {
        if ( n % i == 0 )
        {
            return 0;
        }
    }

    return 1;
    //判断素数函数,输入这个数,看整个数能否整除比它小的数,能整除说明不是素数,返回0,不能整除说明是素数,返回1

}

3、求两个数的最大公约数和最小公倍数

#include <stdio.h>

int gyue( int m, int n )
{
    int temp;
    int z;

    if( m < n )
    {
        temp = m;
        m = n;
        n = temp;
    }
    //如果输入的两个数第一个数小于第二个数,交换两个数

    while( n != 0 )
    {
        z = m % n;
        m = n;
        n = z;
    }
    //m%n得余数z,若z=0,则m为两数的最大公约数,若z != 0,则m = n,n = z,再进行循环

    return m;
}

int gbei( int m, int n, int i )
{
    return (m * n / i);
}
//最大公倍数等于两整数乘积除以最大公倍数
int main()
{
    int m;
    int n;
    int i;
    int j;

    printf("请输入两个正整数:");
    scanf("%d,%d",&m,&n);
    //录入两整数的值

    i = gyue(m,n);                          //调用最大公约数函数
    j = gbei(m,n,i);                        //调用最小公倍数函数

    printf("这两个数的最大公约数为:%d\n",i);
    printf("这两个数的最小公倍数为:%d\n",j);

    return 0;
}

4、计算两个数的加减乘除

#include <stdio.h>

int main()
{
    int add( int a, int b );
    int sub( int a, int b );
    int mul( int a, int b );
    int div( int a, int b );
    //声明加减乘除四个函数

    int a = 0;
    int b = 0;
    int c = 0;

    printf("plesae input a num a:");
    scanf("%d",&a);
    printf("plesae input a num b:");
    scanf("%d",&b);
    //录入a b的值

    c = add( a, b );
    printf("a + b =%d\n",c);
    //调用加函数并输出所得值

    c = sub( a, b );
    printf("a - b =%d\n",c);
    //调用减函数并输出所得值

    c = mul( a, b );
    printf("a * b =%d\n",c);
    //调用乘函数并输出所得值

    c = div( a, b );
    printf("a / b =%d\n",c);
    //调用除函数并输出所得值

    return 0;
}

int add( int a, int b )
{
    return a + b;
}

int sub( int a, int b )
{
    return a - b;
}

int mul( int a, int b )
{
    return a * b;
}

int div( int a, int b )
{
    return a / b;
}

5、输入日期,判断该日期是一年的第几天

#include <stdio.h>

int leapyear(int n)
{
    if(( n % 4 == 0 && n % 100 != 0) || ( n % 400 == 0 ))
    {
        return 1;
    }
    else
    {
        return 0;
    }
}
//判断闰年函数,如果年份能整除4并且不能整除100或者能整除400,就是闰年,返回1

int main()
{
    int year;
    int mouth;
    int day;
    int i = 0;
    int j = 0;
    int result = 0;
    int a[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
    //把每个月的天数放在一个数组中

    printf("请输入年月日:");
    scanf("%d,%d,%d",&year,&mouth,&day);
    //输入年月日并分别赋给year mouth day

    for ( i = 0; i < mouth - 1; i++ )
    {
        result = a[i] + result;
    }
    //把月份之前的月的天数加在一起

    result = result + day;

    j = leapyear(year);
    if( j == 1 )
    {
        if( mouth > 2)
        {
            result += 1;
        }
    }
    //如果是闰年,并且月份大于2,结果+1

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

    return 0;
}

6、输入整数,倒序输出

#include <stdio.h>

int fun ( int n )
{
    int a = 0;
    int b = 0;
    while( n != 0 )
    {
        a = n % 10;                         //a等于n的最后一位上的数
        b = b * 10 + a;                 
        n /= 10;
    }
    //将n倒序放入b中

    return b;
}

int main()
{
    int num;
    int i;

    printf("请输入一个整数:\n");
    scanf("%d",&num);
    //录入整数的值

    i = fun( num );
    printf("倒序输出为:%d\n",i);
    //调用fun函数,让i等于逆序输出的值,输出i

    return 0;
}

7、求1-100的和

#include <stdio.h>

int main()
{
    int i = 1;
    int sum = 0;

    for ( i = 1; i <= 100; i++)
    {
        sum = sum + i;
    }

    printf("1到100的求和值为%d\n",sum);
}

8、求200-300之间不能被3整除的数

#include<stdio.h>

int main()
{
    int i = 200;
    int count = 0;

    printf("200到300之间不能被3整除的数有:\n");

    for( i = 200; i <= 300; i++ )
    {
        if( i % 3 != 0 )
        {
            printf("%5d",i);
            count++;                                
            //当整数不能整除3时,输出该数,并让其占5个字符,同时count+1

            if( count % 5 ==0)
            {
                printf("\n");
            }
            //当count能整除5时,代表已经输出5个数了,让其转行
        }
    }
    printf("\n");

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值