C语言第二次实验报告

C语言第二次实验报告

姓名:雒斌杰 实验地点:一教524 实验时间:2021.4.15

一、实验的目的与要求

1、掌握DEVC++的安装方法,并实现程序的编辑、编译、连接、运行。

2、通过运行简单的C语言程序,初步了解C语言的结构特点。

3、掌握C语言的基本类型及使用方法。

4、熟悉C语言运算符和表达式的正确使用方法。

5、熟练掌握Markdown的用法

二、实验内容

1、实验练习:3.3.1

1、问题的简单描述:输入x值,输出满足函数的y值。并用c语言进行验证。

2、实验代码:

 #include <stdio.h>
 int main ()
 {
    float x,y;
    printf("请输入x的值:");
    scanf("%f",&x);

    if(x>1)
        if(x<10)
	         y=2*x-1;
        else
         y=3*x-1;
    else
    y=x; 
    printf ("y的值为%.2f\n",y);
 }

3.问题分析:注意if与else的对应关系,明确if的条件是可以简单改变的。

2.实验练习:3.3.2

1、问题简单描述:鸡兔同笼用算法计算。

2、实验代码:

      #include <stdio.h>
      main()
      {    
      int h,f,x,y;
      printf("鸡兔总数,鸡兔总脚数:");
      scanf("%d,%d",&h,&f);
      if(x>0&&y>0)
      {
         x=(4*h-f)/2;
         y=(f-2*h)/2;
         printf("鸡有%d 兔有%d\n",x,y );
          }
          else
          printf("输入错误!\n");
        }

3.问题分析:函数正确即可。比较简单。

3、实验练习:3.3.3

1、问题简单描述:有四个圆塔,圆心分别为(2,2)(2,-2)(-2,-2)(-2,2),圆半径为1,这四个塔高为10m,塔以外无建筑物。现输入任一坐标,若该点坐标在任意一个圆塔内,则输出圆塔高度;若不在圆塔内,则输出高度为0。

2、实验代码:

 #include<stdio.h>
 #include<math.h>
 main()
 {
     int h=10;
     float x1=2,y1=2,x2=-2,y2=2,x3=-2,y3=-2,x4=2,y4=-2,x,y,d1,d2,d3,d4;
     printf("请输入一个点(x,y):");
     scanf("%f,%f",&x,&y);
     d1=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));
     d2=sqrt((x-x2)*(x-x2)+(y-y2)*(y-y2));
     d3=sqrt((x-x3)*(x-x3)+(y-y3)*(y-y3));
     d4=sqrt((x-x4)*(x-x4)+(y-y4)*(y-y4));
     if(d1>1&&d2>1&&d3>1&&d4>1)
     h=0;
     printf ("该塔高度为%d",h);
 }

3.问题分析:注意sqrt的应用,&&的引用。

4、实验练习4.3.1

1、问题简单描述:输入3个表示箱子长、宽、高的值,判断并输出该箱子是长方体还是正方体?

2、实验代码:

#include<stdio.h>
int main()
{
    int l,w,h;
    printf ("请输入箱子的长,宽,高:\n");
    scanf ("%d,%d,%d",&l,&w,&h);
    if(l==w&&w==h)
          printf("该箱子是正方体!");
      else
          printf("该箱子是长方体!");
 }

3.问题分析:注意==为判断号,if···else对应关系。

5、实验练习4.3.2

1、问题简单描述:商店有打印纸(18元/本)、墨盒(132元/个)、光盘(4.5元/片)出售,商店进行优惠活动。具体规则如下:顾客购买商品的总额超过100元,优惠%5;超过200元,优惠%6;超过300元,优惠%7;超过400元,优惠%8;超过500元,优惠%10。根据不同的购买量,计算应付货款。

2、实验代码:

#include<stdio.h>
main()
{
    float x,y,z,w,h;
    printf("请输入打印纸,墨盒,光盘的数量:");
    scanf("%f,%f,%f",&x,&y,&z);
    w=18*x+132*y+4.5*z;
    if(w>500)
         {h=w*0.9;
         printf("应付款数=%.2f",h);}
    else if(w>400)
	     {h=w*0.92;
	     printf("应付款数=%.2f",h);}
    else if(w>300)
	     {h=w*0.93;
	     printf("应付款数=%.2f",h);}
    else if(w>200)
	     {h=w*0.94;
	     printf("应付款数=%.2f",h);}
    else if(w>100)
                 {h=w*0.95;
             printf("应付款数=%.2f",h);}
        else
           {h=w;
            printf("应付款数=%.2f",h);}    
}

3.问题分析:可以将优惠的钱直接转换成应该付的钱,优惠也从500开始变小才可以。

6、实验练习4.3.3

1、问题简单描述:输入年、月的数值,输出该年该月的天数

2、实验代码:

#include<stdio.h>
main()
{
    int year,month,days;
    printf("Please enter year and month:\n");
    scanf("%d%d",&year,&month);
    switch (month)
    {
            case 2: if(year%4==0&&year%100!=0||year%400==0) 
	                  days=29;
	            else
		          days=28; 
                    break;
	    case 1:
	    case 3:
	    case 5:
	    case 7:
	    case 8:
	    case 10:
	    case 12:  days=31; break;
	    case 4:
	    case 6:
	    case 9:
	    case 11:  days=30; break;
    }
    printf("%d年%d月有%d天",year,month,days);
    return 0;	         
}

3.问题分析:注意case的排布。刚开始,判断年份是不是闰年有点难,后来也算是搞懂了,但是不是特别懂哦。

实验小结:注意使用if···else的使用,还有就是,不一定要与题目一致,要求和结果要正确。要学会灵活变通。还理解如何判断年份是否为闰年?case语句要有break来结束,不然将会一直执行下去。

预习第四章

posted @ 2021-04-19 23:33  雒斌杰的博客  阅读(115)  评论(0编辑  收藏  举报