练习:选择结构程序设计(2)

第1关:大小写转换

任务要求 编写程序,实现从键盘输入一个字符,如果是小写字母,将其转化为相对应的大写字母并输出至屏幕。

输入要求 输入一个字符ch

输出要求 如果字符ch是小写字母,输出其对应的大写字母;否则原样输出。

#include<stdio.h>
int main()
{
    char ch = 0;
    scanf("%c",&ch);
    if (ch>=97)
    ch = ch - 32;
    printf("%c",ch);
    return 0;
}

第2关:分数等级

编写程序,实现从键盘输入一个百分制的学生分数,判断并输出该分数的等级。要求:用switch语句实现。

成绩等级
90-100A
80-89B
70-79C
60-69D
0-59E
<0或者>100error

输入要求 输入一个整数score,表示该学生的成绩。

输出要求 根据转换规则输出成绩score对应的等级。

#include<stdio.h>
int main()
{
    int score = 0;
    scanf("%d",&score);
    if(score<0||score>100)
    printf("error");
    else
    switch(score/10)
    {
        case 9:
        case 10:
        printf("%c",'A');
        break;
        case 8:
        printf("%c",'B');
        break;
        case 7:
        printf("%c",'C');
        break;
        case 6:
        printf("%c",'D');
        break;
        default:
        printf("%c",'E');
    }
    return 0;
}

第3关:求三角形面积

任务要求 编写程序,实现计算三角形面积。(提示:s=(a+b+c)/2;面积S=sqrt(s*(s-a)*(s-b)*(s-c));其中abc为三角形三个边)。

输入要求 输入三个正整数abc,分别表示三角形各边的边长。

输出要求 如果可以构成三角形,输出三角形的面积S。结果保留两位小数,否则输出-1

输入样例 3 4 5

输出样例 6.00

//根据题目要求完成程序设计
#include<stdio.h>
#include<math.h>
int main()
{
   int a = 0;
   int b = 0;
   int c = 0;
   scanf("%d%d%d",&a,&b,&c);
   if (a+b>c&&a+c>b&&b+c>a)
   {
       double s =(a+b+c)*1.0/2;
       printf("%.2f",sqrt(s*(s-a)*(s-b)*(s-c)));
   }
   else
   printf("%d",EOF);
    return 0;
}

第4关:方程求解

任务要求 编写程序,实现求解方程ax2+bx+c=0方程的解。

输入要求 输入三个整数,分别代表ab以及c的值。

输出要求 如果方程有实数解,则输出x的结果(保留两位小数),否则输出-1。注意:如果方程有多个解,结果按照从小到大输出;如果方程求无穷组解,则输出1

输入样例1 1 -2 1

输出样例1 1.00 1.00

输入样例2 1 1 1

输出样例1 -1

//根据题目要求完成程序设计
#include<stdio.h>
#include<math.h>
int main ()
{
    int a = 0;
    int b = 0;
    int c = 0;
    
    scanf("%d%d%d",&a,&b,&c);
    if (a == 0&&b!=0)
    printf("%.2f",-c*1.0/b);
    else if (a==0&&b==0&&c==0)
    printf("%d",1);
    else if (a==0&&b==0&&c!=0)
    printf("-1");
    else
    {
        double delt = b*b - 4*a*c;
        if (delt<0)
        printf("%d",EOF);
        else
        {
            double x1 =(-b+sqrt(delt)*1.0)/(2*a);
            double x2 =(-b-sqrt(delt)*1.0)/(2*a);
            if(x1>x2)
            {
            double tmp = x1;
            x1 = x2;
            x2 = tmp;
           
            }
         printf("%.2f\n%.2f",x1,x2); 
          
        }
    }
    return 0;
     

}

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值