ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

第二次实验报告

2021-04-19 20:03:39  阅读:129  来源: 互联网

标签:语句 include else break 实验 printf 第二次 实验报告


C程序设计实验报告

实验项目:简单算法&分支结构实验

姓名:杜鹏  实验地点:一教524  实验时间:8:30-11:40

一、实验目的与要求

1、掌握结构话程序的算法描述方法

2、了解C语言的基本算法要素,能熟练地将算法描述转化为C语言程序

3、熟练掌握C语言运算符的优先级、结合性、运算规则、运算对象类型等

4、掌握各种形式的if语句语法和使用方法。注意if语句中if和else的匹配关系,以及if语句的嵌套

5、掌握switch语句的语法和使用方法。注意在switch语句中break语句的用法及switch语句的嵌套

二、实验内容

实验一

1)在if嵌套语句中容易忘记大括号导致报错

2)实验代码

3.3.1
               #include<stdio.h>
               main()
               {
                   float x,y;
                   printf("请输入x的值");
                   scanf("%f",&x);
                   if(x<1)
                   {	
                   y=x;
                   printf("y的值为%.2f",y); 
                   }
                   else if(x<10)
                   {
                   y=3*x-1	;
                   printf("y的值为%.2f",y); 
                   }
                   else 
                   {
                   y=2*x-1;
                   printf("y的值为%.2f",y); 
                   }
               }

3)问题分析

在此实验中主要的问题就是if与else的配对问题,只要记住else与上一个最近的未配对的if配对即可。这样可以更加容易的找到与else配对的if

实验二

1)、if中的条件未用&&,以及在赋值x时直接写4h导致报错

2)、实验代码

3.3.2
  #include<stdio.h>
  int 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)问题分析

在使用if条件语句是的嵌套语句会忘记大括号,以及&&符号忘记。在列x,y的表达式是容易写成4h这样会导致报错,应该写成4*h。

实验三

1)、忘记使用头文件,以及在平方的时候直接^2导致报错。

2)、实验代码

3.3.3
  #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):\n");
      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);
      }
      else
      printf("塔的高度为%d",h);
  }

3)、问题分析

忘记头文件#include导致后面的sqrt函数报错,应该在头文件里加上。以及在用平方是不能直接^2而是两个相乘。

实验四

1)分析不清赋值还是关系。

2)实验代码 4.3.1

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

3)、问题分析

分不清赋值和关系语句,应该用==表示关系,=表示赋值。

实验五

1)if和else的配对问题,以及在用switch语句的时候break的使用问题。

2)实验代码 4.3.2

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





  #include<stdio.h>
  main()
  {
      int a,b,c,f;
      float s;
      printf("请输入打印纸、墨盒、光盘的数量:\n");
      scanf("%d,%d,%d",&a,&b,&c);
      s=18*a+132*b+4.5*c;
      f=s/100;
      if(f>=5)
      f=5;
      switch(f)
        {
	      case 0 : s=s;break;
	      case 1 : s=0.95*s;break;
	      case 2 : s=0.94*s;break;
	      case 3 : s=0.93*s;break;
	      case 4 : s=0.92*s;break;
	      case 5 : s= 0.9*s;break;
	      default : break;
      }
	      printf("应付款=%.2f",s);
  }

3)问题分析

if与else的配对应该遵循else与上一个未配对的if配对。switch语句时注意注意break的使用。

实验六

1)在使用连续运算的时候注意优先级的问题。

2)实验代码 4.3.3

  #include<stdio.h>
  main()
  {
      int year,month,days;
      printf("Please enter year and month:\n");
      scanf("%d%d",&year,&month);
      switch(month)
      {
	      case2 : if((year%4==0&&year&100!=0)||year%400==0)
	              days=29;
	              else
	       	      days=28;break;
	              case1 :	    
	              case3 :	    
	              case5 :	    
	              case7 :	    
	              case8 :	    
	              case10 :	    
	              case12 : days=31;break;   
	              case4 :	    
	              case6 :	    
	              case9 :	    
	              case11 : days=30;break;	   
	              default : break;
      }
                      printf("%d年%d月有%d天",year,month,days);
  }

3)问题分析

在使用或和于是应该考虑优先级以及求余数是否等于0等

三、实验小结

1、对于if语句和switch语句自己还是不够熟练,应该反复练习。对于不懂的知识点进行反复练习。对于算法以及流程图的制作应该进行反复的练习。

2、对于小伙伴邓文超的建议:主要是要多多练习switch语句,以及对一些复杂的实验进行反复的训练。做什么都应该仔细一点。

四、思维导图

标签:语句,include,else,break,实验,printf,第二次,实验报告
来源: https://www.cnblogs.com/dupenghaos/p/14675044.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有