惧留孙网

juliusun.com

惧留孙网 > 在线教程 > C语言练习题

判断语句之if

(9/50 节 页面下方包含QQ群、作者QQ等)

1、润年判断,用户输入年份,判断年份是否是润年

  年份是整百数时,必须是400的倍数才是闰年,否则不是;
  年份不是整百数时,是4的倍数是润年,否则不是。

  这就是通常所说的:四年一闰,百年不闰,四百年再闰
  例:2000年是闰年,2100年则不是润年


//参考答案1,判断嵌套
#include<stdio.h>
int main()
{
    int y;  //记录年份
    int is;//是否润年,1为润年,0不是
    printf("请输入年份:\n");
    scanf("%d",&y);

    //对100取余判断100的整数倍
    //也可写作:if( y % 100 )
    if( (y % 100) != 0)
    {
        if( (y % 4) == 0)
        {
            is = 1; //是润年
        }
        else
        {
            is = 0; //不是润年
        }
    }
    else//100倍数则执行else语句块
    {
        if( (y % 400) == 0 )
        {
            is = 1;
        }
        else
        {
            is = 0;
        }
    }

    if( is == 0 )
    {
        printf("%d 年不是润年",y);
    }
    else
    {
        printf("%d 年是润年",y);
    }

    //让用户输入回车,达到暂停目的
    scanf("\n\n\n\n");
    return 0;
}

//参考答案2-简洁型-适合理解深入者
#include<stdio.h>
int main()
{
    int y;  //记录年份

    printf("请输入年份:\n");
    scanf("%d",&y);

    if( ((y % 400) == 0) || (((y % 4) == 0) && ((y % 100) != 0)))
        printf("%d 年是润年",y);    //只有一条语句可省略花括号{}
    else
        printf("%d 年不是润年",y);

    //让用户输入回车,达到暂停目的
    scanf("\n\n\n\n");
    return 0;
}

2、用户输入不重复的3个整数a、b、c,输出3个数中哪个数字最大。如用户输入3、2、1,则输出a最大


#include<stdio.h>
int main()
{
    int a,b,c;
    printf("输入a b c,空格分隔\n");
    scanf("%d %d %d",&a,&b,&c);

    if(a > b)//找出a b中较大值
    {
        if(a > c)//如果a大,a与c比
        {
            printf("a最大");
        }
        else
        {
            printf("c最大");
        }
    }
    else
    {
        if(b > c)//如果b大,b与c比
        {
            printf("b最大");
        }
        else
        {
            printf("c最大");
        }
    }

    //让用户输入回车,达到暂停目的
    scanf("\n\n\n\n");
    return 0;
}

3、有一个函数
函数
  输入 x 的值,输出相应的 y 值,x、y皆为整数


#include<stdio.h>
int main()
{
    int x,y;
    scanf("%d",&x);

    if( x < 1)
    {
        y = x;
    }
    else
    {
        if(x <10)
        {
            y = 2 * x - 1;
        }
        else
        {
            y = 3 * x - 11;
        }
    }

    printf("y值为 %d",y);

    //让用户输入回车,达到暂停目的
    scanf("\n\n\n\n");
    return 0;
}

4、有4个圆塔,圆心分别为 (2,2)、(-2,2)、(-2,-2)、(2,-2),圆半径为1(即1米),4个塔高度是 10m (即10个坐标)。塔外无建筑物,现在输入一个坐标,求该点高度。塔外高度均为0。使用float精度即可
塔


#include<stdio.h>
int main()
{
    float x,y;
    printf("请输入坐标x,y,逗号分隔\n");
    scanf("%f,%f",&x,&y);

    /*由于坐标上与下、左与右均对称
    因此x,y与其绝对值高度是相等的
    只需要计算x,y绝对值坐标高度
    */
    if(x < 0)
    {
        x = -1 * x;
    }
    if(y < 0)
    {
        y = -1 * x;
    }

    /*此时x,y分别是坐标绝对值
    坐标与(2,2)点距离如果小于等于1,
    则高度是10,否则是0
    使用勾股定理*/

    if((x-2)*(x-2) + (y-2) *(y-2) > 1)
    {
        printf("高度是0");
    }
    else
    {
        printf("高度是10");
    }

    //让用户输入回车,达到暂停目的
    scanf("\n\n\n\n");
    return 0;
}

作者:冥河 QQ:3304576112   交流QQ群:554701039 C语言讲课群 本教程内容由本站保留版权,请勿复制传播。

抖音
©2015-2024 惧留孙网 juliusun.com

京ICP备15039193号-1

首页 教程 下载 文章 聊天 我的