两个问题:数学公式计算(题目1)和选择结构(题目2、3)
题目1:
输入一个华氏温度,要求输出摄氏温度。公式为 c=5(F-32)/9,取2位小数。
例如
输入:-40
输出:c=-40.00
代码如下:
#include<stdio.h>
int main()
{
double F,c;
scanf("%lf",&F);
c=5*(F-32)/9;
printf("c=%.2lf",c);
return 0;
}
注意:
- F和c都为浮点数,要用浮点型进行定义,最开始做的时候我用的float,但看到所有的题解都用的double型,我百思不得其解,最后才发现128华氏度仅为53.33333333摄氏度,明显在float的范围内是不够用的,所以我们使用范围更大的double型。
- 数学公式与C语言代码的转换。
- %m.nf中,m表示总宽度 (可省略),n表示精度,即保留到小数点后几位。此题保留2位小数,即为%.2lf。
题目2:
对分段函数求值,输入x,输出y。
代码如下:
#include<stdio.h>
int main()
{
int x,y;
scanf("%d",&x);
if (x<1)
{ y=x;}
else if(1<=x&&x<10)
{y=2*x-1;}
else
{y=3*x-11;}
printf("%d",y);
}
注意:
- x取值范围变成代码的改写。
- if 、else if 、else 的正确使用。
if 、else if 、else 的正确使用:
if(条件1)
如果条件1为真,执行这里;(条件为真才执行)
else if(条件2)
否则,当条件2为真执行这里。(当条件1不为真,条件2为真执行这里)
else
条件1,条件2都不为真,执行这里
题目3:
(成绩评定)给出一百分制成绩,要求输出成绩等级‘A’、‘B’、‘C’、‘D’、‘E’。 90分以及90分以上为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E。
输入:一个整数0-100以内
输出:一个字符,表示成绩等级
代码如下:
#include<stdio.h>
int main()
{
int x;
scanf("%d",&x);
if(x<=100&&x>=0)
{
if(x>=90)
{
printf("A");
}
else if(x>=80&&x<=89)
{
printf("B");
}
else if(x>=70&&x<=79)
{
printf("C");
}
else if(x>=60&&x<=69)
{
printf("D");
}
else
{
printf("E");
}
}
}
上述方式很简单易懂,但很麻烦,这里的嵌套显然很烦琐且易漏。
用switch语句对此进行优化
代码如下:
#include<stdio.h>
int main()
{
int x;
scanf("%d",&x);
x=x/10;
if(x<=10&&x>=0)
switch(x)
{
case 10:
case 9:
printf("A"); break;
case 8:
printf("B"); break;
case 7:
printf("C"); break;
case 6:
printf("D"); break;
default:
printf("E"); break;
}
}
代码简单清晰,省时省力。
注意:
- switch中仅能进行判断是与否,不能通过逻辑表达式判断,如果进入的x和case后面的能够对上号了,那就进行后续语句,所以对成绩进行了除以10的处理。
- default与else差不多的意思和使用方式。
- break必不可少,找到相应部位后及时跳出。
更多推荐
公式计算 、if语句 、switch语句, 选择结构例题, if 、else if 、else 的正确使用,温度转换、分段函数求值、成绩评定题型 ,新手编程
发布评论