第二次实验报告

第二次实验报告

C语言设计实验报告

姓名:李宏远     实验地点:一教524     实验时间:2021/4/15

一、实验目的与要求

1、掌握结构化程序的算法描述方法。
2、了解C语言的基本语法要素,能熟练地将算法描述转化为C语言程序。
3、熟练掌握C语言运算符的优先级、结合性、运算规则、运算对象类型等。
4、掌握C语言逻辑值的表示方法
5、学会正确地使用关系表达式和逻辑表达式。
6、掌握各种形式的if语句语法和使用方法。注意if语句中if和else的匹配关系,以及if语句的嵌套。
7、掌握switch语句的语法和使用方法。注意在switch语句中break语句的用法及switch语句的嵌套。
8、能独立编写分支机构程序并调试通过。
9、用if语句、switch语句解决简单的应用问题并上机实现。

二、实验内容

1.实验练习: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=2*x-1;
 printf("y的值为%.2f",y);
              }
 else{
 y=3*x-1;
 printf("y的值为%.2f",y);
     }
}

image
image

问题分析:

忘记了浮点式的赋值规则,翻书查找。

2.实验练习:3.3.2

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

image

问题分析:

忘记了鸡兔数量的运算方法,照着书上抄下来之后才看懂。

2.实验练习:3.3.3

实验代码:
#include<stdio.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((x1-x)*(x1-x)+(y1-y)*(y1-y));
 d2=sqrt((x2-x)*(x2-x)+(y2-y)*(y2-y));
 d3=sqrt((x3-x)*(x3-x)+(y3-y)*(y3-y));
 d4=sqrt((x4-x)*(x4-x)+(y4-y)*(y4-y));
 if(d1>1&&d2>1&&d3>1&&d4>1) h=0;
 printf("改塔高度为%d",h);
}

image

问题分析:

错解了书中算法,错误原因是把大于号打成了小于号。

2.实验练习:4.2.4

实验代码:
#include<stdio.h>
main()
{
 float x,y;
 char op;
 printf("输入表达式:");
 scanf("%f%c%f",&x,&op,&y);
 switch(op)
 {
  case'+': printf("%.2f%c%.2f=%.2f\n",x,op,y,x+y);break;
  case'-': printf("%.2f%c%.2f=%.2f\n",x,op,y,x-y);break;
  case'*': printf("%.2f%c%.2f=%.2f\n",x,op,y,x*y);break;
  case'/': 
    if (y!=0)
    {printf("%.2f%c%.2f=%.2f\n",x,op,y,x/y);break;}
  else {printf("除数为零!\n");break;}
  default: printf("输入表达式有错!\n");
 }
 return 0;
}

image

问题分析:

规范了switch语句的用法,学会了if语句和switch语句共同使用时的规范结构。

2.实验练习:4.3.1

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

image

问题分析:

无明显问题

2.实验练习:4.3.2

实验代码:

if结构

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

image
switch结构

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

image

问题分析:

使用switch结构时,遇到了t数值运算的困难,反复尝试后解决。

2.实验练习:4.3.3

实验代码:
#include<stdio.h>
#include<stdlib.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);
}

image

问题分析:

判断闰年时遇到困难,如何将被100整除的年份去掉,又如何将被400整除的年份加进来。条件较多,要使用好&&和||。

三、实验小结

1、程序设计的依据是算法。
2、if只管后面一个语句,要管多个要用大括号。
3、if...else语句中,if后面的单个语句有分号,但复合语句后没括号。当if...else语句有嵌套时,要注意其搭配关系,else总是与它前面最近的尚未配对的if对应。
4、switch后一对括号中的“表达式”,只要其值为整型即可;case后的表达式必须是常量表达式,不能包含变量。
给揭子奇的建议:建议他下次打代码的时候仔细点,经常运行出错,还要我帮他找茬。

四、预习第四章

image

posted @ 2021-04-19 23:48  苦力怕  阅读(57)  评论(0编辑  收藏  举报