C语言,练习4

(1).   有一函数:

 

 scanf函数输入x的值,求y值。

运行程序,输入x的值(分别为x<11≤x<10x≥10三种情况),检查输出的y值是否正确

#include <stdio.h>

int main()

{

    int x,y;

    scanf("%d", &x);

    if (x < 1)

       y = x;

    else if (x >= 1 && x < 10)

       y=2*x-1;

    else if (x >= 10 )

       y=3*x-11;

       printf("%d\n",y);

    return 0;

}

 

(2).     给出一个百分制成绩,要求输出成绩等级ABCDE90分以上为A8089分为B7079分为C6069分为D60分以下为E

事先编好程序,要求分别用if语句和switch语句实现(写两个程序)。运行程序,并检查结果是否正确。

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

int main()

{   float i;

printf("输入成绩: ");

scanf("%f", &i);

if (i >= 90)

    printf("等级为A\n");

else if (i >= 80 && i <= 89)

    printf("等级为B\n");

else if (i >= 70 && i <= 79)

    printf("等级为C\n");

else if (i >= 60 && i <= 69)

    printf("等级为D\n");

else if (i < 60)

    printf("等级为E\n");

return 0;}

 

再运行一次程序,输入分数为负值(如-70),这显然是输入时出错,不应给出等级。修改程序,使之能正确处理任何数据。当输入数据大于100或小于0时,通知用户输入数据错,程序结束。

 Switch 语句

 

 

3).     给一个不多于3位的正整数,要求:①求出它是几位数;②分别打印出每一位数字;③按逆序打印出各位数字,例如原数为321,应输出123

应准备以下测试数据:

l     要处理的数为1位正整数;

l     要处理的数为2位正整数;

l     要处理的数为3位正整数;

除此之外,程序还应当对不合法的输入作必要的处理。例如:

  1. 输入负数;
  2. 输入的数超过3位(如1234)。

#include "stdio.h"

void main()

{

   unsigned int x;

   int a,b,c,d,t;

   printf("请输入一个正整数x:",x);

   scanf("%d",&x);

   a=x/1000;

   b=(x/100)%10;

   c=(x%100)/10;

   d=x%10;

   t=a+b*10+c*100+d*1000;

     printf("它个位数上是d=%d\n",d);

   if(a!=0)

   {

     printf("它十位数上是c=%d\n",c);

     printf("它百位数上是b=%d\n",b);

     printf("它千位数上是a=%d\n",a);

     printf("这个数是一个四位数\n");

     printf("它逆序结果为t=%d\n",t);

   }

   else if(b!=0){

    printf("它十位数上是c=%d\n",c);

     printf("它百位数上是b=%d\n",b);

       printf("这个数是一个三位数\n");

     printf("它逆序结果为t=%d\n",t/10);

   }

   else if(c!=0){

     printf("它十位数上是c=%d\n",c);

    printf("这个数是一个十位数\n");

     printf("它逆序结果为t=%d\n",t);}

     else {

    printf("这个数是一个一位数\n");

     printf("它逆序结果为t=%d\n",d);

     }

}

(4).   输入4个整数,要求按由小到大顺序输出。

得到正确结果后,修改程序使之按由大到小顺序输出。

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

int main()

{

       int a, b, c, d, t;

       printf("输入; a,b,c,d: \n");

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

       if (a > b)

       {

              t = a;

              a = b;

              b = t;

       }

       if (a > c)

       {

              t = a;

              a = c;

              c = t;

       }

       if (a > d)

       {

              t = a;

              a = d;

              d = a;

       }

       if (b > c)

       {

              t = b;

              b = c;

              c = t;

       }

       if (b > d)

       {

              t = b;

              b = d;

              d = t;

       }

       if (c > d)

       {

              t = c;

              c = d;

              d = t;

       }

       printf("%d,%d,%d,%d\n", a, b, c, d);

       return 0;

}

好难,这章考察的是对于if else和switch case语句的应用,其中也含有对变量的处理,对于新手来说还是有一定难度的,第三第四题这种对于数据处理后再输出,自己也是有参考学习才做出来,绕不少弯子,还有待巩固

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

请在此处输入你的昵称

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

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

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

打赏作者

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

抵扣说明:

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

余额充值