首页 > 代码库 > 第三次作业

第三次作业

1. 字符判断

     输入一个字符,判断它如果是小写字母输出其对应大写字母;如果是大写字母输出其对应小写字母;如果是数字输出数字本身;如果是空格,输出“space”;如果不是上述情况,输出“other”。

# include <stdio.h>
int main()
{
  char x;
  printf("请输入一个大写或小写字母或空格或0-9的整数:\n");
  scanf("%c",&x);
  if(x>=A&&x<=Z)
  {
      x=x+32;
      printf("%c\n",x);
  }
  else if(x>=a&&x<=z)
  {
      x=x-32;
      printf("%c\n",x);
  }
  else if(x==32)
  {
      printf("space\n");
  }
  else if(x>=48&&x<=57)
  {
      x=x-48;
    printf("%d",x);
  } 
  else 
  {
      printf("other\n");
  }  
 return 0;  
}

技术分享

技术分享

技术分享

技术分享

技术分享

本次课知识点总结:

1.熟练运用字符型与整型之间的转换。

2.记住一些主要字符型数据所对应的数字。

实验总结:

1.字符型数据的表示方法,用单引号引起来。

2.输出时看清要求,是输出字符型还是整型。

2. 年龄问题

     输入一个学生的生日(年:月:日),并输入当前日期(年:月:日),计算该生的实际年龄(周岁)。

# include <stdio.h>
# include <stdlib.h>
int main()
{
    int year1,month1,day1,year2,month2,day2,a,b,c;
    printf("请输入你的生日,格式年:月:日:\n");
    scanf("%d:%d:%d",&year1,&month1,&day1);
    if(month1>12||month1<1||month2>12||month2<1)
    {
        printf("输入数据错误!!!\n");
        exit(0);
    }
    else if(month1==1||month1==3||month1==5||month1==7||month1==8||month1==10||month1==12)
    {
        if(day1>31||day1<1)
        {
            printf("输入数据错误!!!\n");
            exit(0);
        }        
    }
    else if(month1==4||month1==6||month1==9||month1==11)
    {
        if(day1>30||day1<1)
        {
            printf("输入数据错误!!!\n");
            exit(0);
        }
    }
    else if(month1==2)
    {
        if((year1/4==0&&year1/100!=0)||year1/400==0)
        {
            if(day1>29||day1<1)
            {
                printf("输入数据错误!!!\n");
                exit(0);
            }
        }
        else
        {
            if(day1>28||day1<1)
            {
                printf("输入数据错误");
                exit(0);
            } 
        }
    }
    printf("请输入今天的日期,格式年:月:日\n");
    scanf("%d:%d:%d",&year2,&month2,&day2);
    if(month2==1||month2==3||month2==5||month2==7||month2==8||month2==10||month2==12)
    {
        if(day2>31||day2<1)
        {
            printf("输入数据错误!!!\n");
            exit(0);
        }        
    }
    else if(month2==4||month2==6||month2==9||month2==11)
    {
        if(day2>30||day2<1)
        {
            printf("输入数据错误!!!\n");
            exit(0);
        }
    }
    else if(month2==2)
    {
        if((year2/4==0&&year2/100!=0)||year2/400==0)
        {
               if(day2>29||day2<1)
            {
                printf("输入数据错误!!!\n");
                exit(0);
            }
        }
        else
        {
            if(day2>28||day2<1)
            {
                printf("输入数据错误!!!\n");
                exit(0);
            }
        }
    }
    a=year2-year1;
    b=month2-month1;
    c=day2-day1;
    if((a<0)||(a==0&&b<0)||(a==0&&b==0&&c<0))
    {
        printf("输入数据错误!!!\n");
        exit(0);
    }
    else 
    {
     if(b<0)
     {
        a=a-1;
        printf("你现在%d周岁了\n",a);
     }
     else if(b==0)
     {
        if(c<0)
        {
            a=a-1;
            printf("你现在%d周岁了\n",a);
        }
        else
        {
            printf("你现在%d周岁了\n",a);
        }
     }
     else
     {
        printf("今天你%d周岁了\n",a);
     }
    }
 return 0;    
}

技术分享

本次课知识点总结:

1.引入了强制输出,# include <stdlib.h>    exit(0);   。

2.使用if  else 连环嵌套。

实验总结:

1.输入一次数据就立刻判断一次,最好不要两次都输入完了在判断输入数据是否错误。

2.熟记闰年的判断方式。

  3. 判断三角形类型

  输入三个整数,判断由其构成的三角形的类型(等边三角形、等腰三角形、等腰直角三角形、直角三角形、一般三角形以及非三角形)

# include <stdio.h>
int main()
{
    int x,y,z;
    printf("请输入三角形的三条边长,数字类型为整数:\n");
    scanf("%d,%d,%d",&x,&y,&z);
    if((x+y<=z||x+z<=y)||y+z<=x) 
    {
        printf("非三角形\n");
    }
    else
    {
        if((x==y||x==z)||y==z)
        {
            if((x==y&&x==z)&&y==z)
            {
                printf("该三角形为等边三角形\n");
            }
            else
            {
                if((x*x+y*y==z*z||x*x+z*z==y*y)||y*y+z*z==x*x)
                {
                    printf("该三角形为等腰直角三角形\n");
                }
                else
                {
                    printf("该三角形为等腰三角形\n");
                }
            }
        }
        else
        {
            if((x*x+y*y==z*z||x*x+z*z==y*y)||y*y+z*z==x*x)
            {
                printf("该三角形为直角三角形\n");
            }
            else
            {
                printf("该三角形为普通三角形\n");
            }
        } 
    }
 return 0;    
}

技术分享

技术分享

技术分享

技术分享

技术分享

本次课知识点总结:

1.if else 连环嵌套。

2.有关三角形的基础知识要知道。

实验总结:

1.在等腰的基础上判断等边,只等腰不等边时在分是否是直角。

2.逻辑关系要理清楚。

  4. 看商品猜价格小游戏

# include <stdio.h>
# include <stdlib.h>
# include <time.h>
int main()
{
    int a,b;
    printf("你猜这个商品的价格是多少(1-100之间):\n");
    scanf("%d",&a);
    srand(time(NULL));
    b=rand()%100+1;
    if(a==b)
    {
        printf("恭喜!商品归你了\n");
    }
    else if(a<b)
    {
        printf("太小了,价格是%d\n",b);
    }
    else
    {
        printf("太大了,价格是%d\n",b);
    }
 return 0;    
}

技术分享

技术分享

本次课知识点总结:

1.系统输出1-100随机数# include <stdlib.h>      b=rand()%100+1;

2.让随机数不停的变化# include <time.h>      srand(time(NULL));

实验总结:

1.让随机数不停变化需要加入# include <time.h>      srand(time(NULL));

2.让随机在1-100需在 b=rand()%100后面在加个1.

附加题:虫子吃苹果问题(完成此题加1分)

    你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果?

   输入n,x和y(均为整数),输出剩下的苹果个数。

   测试数据:  10  4  9

                    5  3  16

# include <stdio.h>
int main()
{   
    int n,x,y,z,f; 
    printf("你买了一箱n个苹果,箱子里有一只虫子,虫子x小时吃掉一个苹果,y小时后还剩多少苹果,请输入n,x,y(n,x,y均为正整数):\n");
    scanf("%d,%d,%d",&n,&x,&y);
    f=n-(y/x);
    if(n<=0||x<=0)
    {
        printf("输入错误!!!\n");
    }
    else if(f<=0)
    {
        printf("剩余0个苹果\n");
    }
    else
    {
        if((double)y/x>y/x)
        {
        z=n-(y/x)-1;
        printf("剩余%d个苹果\n",z);
        }
        else 
        {
            z=n-(y/x);
            printf("剩余%d个苹果\n",z);
        }
    }
 return 0;
}

技术分享

技术分享

本次课知识点总结:

1.使用浮点型数据。

实验总结:

1.当y/x为小数时让y/x+1。

第三次作业