(头歌)C语言程序设计------运算符与表达式编程

第1关:判断并输出闰年信息

任务描述

本关任务:编写一个小程序,根据输入的年号,判断并输出该年是不是闰年的信息。

相关知识

为了完成本关任务,你需要掌握: 1.判断闰年的逻辑表达式:能被4整除但不能被100整除,或者能被400整除的数是闰年。 2.用条件表达式实现选择(分支)结构的程序。 3.整型数据的输入,以及按照指定格式输出的方法。

用条件表达式实现选择(分支)结构的程序

条件表达式? :可以用来实现简单的选择结构(分支结构)程序,例如。

 
  1. # include <stdio.h>
  2. int main() //输入一个整数,输出其是偶数还是奇数。
  3. {
  4. int n;
  5. printf("输出一个整数:");
  6. scanf("%d",&n);
  7. printf("%d是%s数。",n,n%2==0?"偶":"奇");
  8. return 0;
  9. }

输出: 10是偶数。 3是奇数。

编程要求

根据提示,在右侧编辑器Begin-End区域内补充代码,读入年号之后,判断并输出该年是不是闰年的信息。

测试说明

平台会对你编写的代码进行测试:

测试输入:2012 预期输出: 2012年是闰年。

测试输入:2000 预期输出: 2000年是闰年。

测试输入:2022 预期输出: 2022年不是闰年。

测试输入:2100 预期输出: 2100年不是闰年。

提示: 1、在程序开头需要定义2个整型(int类型)的变量,分别保存年号和闰年逻辑表达式的值; 2、本程序不能使用if ……else语句,只能通过条件表达式? : 来完成有关分支功能。 3、运行程序后,从键盘输入年号; 4、输出的时候,必须按照预期的输出格式进行输出,该有的字符、汉字必须有,不该有的绝对不能有,否则无法通过测试。

代码如下 


#include <stdio.h>

int main()

{

    /***   Begin   ***/

    int n;

    scanf("%d",&n);

    printf("%d年%s闰年。",n,n%4==0&&n%100!=0||n%400==00?"是":"不是");

    /***    End    ***/

    return 0;

}


第2关:从3个实数中用条件表达式找出最小值、中间值和最大值

任务描述

本关任务:编写一个程序,从键盘输入以逗号分隔的3个实数,通过条件表达式计算出这3个实数中最小值和最大值,再利用算术表达式计算机出中间值,然后按照2位小数换行输出这3个数中的最小值、中间值和最大值。具体输入输出格式请参照下文中的“测试输入”和“预期输出”。

相关知识

为了完成本关任务,你需要掌握: 1.如何用条件表达式计算出3个数中的最大值和最小值。 2.实型数据的输入,以及按照指定格式输出的方法。

如何从3个数中求最大值

从a,b,c这3个变量中计算出最大值并保存在变量max中。

 
  1. max=a>b?(a>c?a:c):(b>c?b:c);

如何从3个数中求最小值

计算最小值的方法跟上面类似。

如何从3个数中求中间值

3个数的和减去最小值,再减去最大值,就是中间值。

编程要求

根据提示,在右侧编辑器Begin-End区域内补充代码,读入以逗号分隔的3个实数,通过条件表达式计算出其中的最小值和最大值,再用算术表达式计算出中间值,然后按照两位小数的形式等格式要求分别换行输出最小值、中间值和最大值。

测试说明

平台会对你编写的代码进行测试:

测试输入:4.32.85.2; 预期输出: 最小值是2.80 中间值是4.30 最大值是5.20

测试输入:-14584.882; 预期输出: 最小值是-14.00 中间值是4.88 最大值是58.00

提示: 1、在程序开头需要定义6个单精度或双精度实型的变量,分别保存输入的3个数,以及计算出的最小值、中间值和最大值; 2、本程序不能使用if ……else语句,只能通过条件表达式? : 和算术表达式来完成有关计算功能。 3、运行程序后,从键盘输入3个实数,要以逗号分隔; 4、输出的时候,必须按照“预期输出”格式进行输出,该有的字符、汉字、换行符必须有,不该有的绝对不能有,否则无法通过测试。

代码如下


 #include <stdio.h>

int main()

{

    /***   Begin   ***/

    float a,b,c;                      

    float max,min,zhong;                  

    scanf("%f,%f,%f",&a,&b,&c);      

    max=(a>b?a:b)>c?(a>b?a:b):c;                                

    min=(a<b?a:b)<c?(a<b?a:b):c;

    zhong=a+b+c-max-min;        

    printf("最小值是%.2f\n中间值是%.2f\n最大值是%.2f",min,zhong,max);

    /***    End    ***/

    return 0;

}


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

失棉的羊 .

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值