第一次作业

一.计算机18秋_分支结构 7-9 高速公路超速处罚

1.实验代码

 1 #include<stdio.h>
 2 int main()
 3 { 
 4     int a, b, c; 
 5       double d;     //定义车速(a),限速(b),车速与限速差值(c),超速百分比(d)
 6     scanf("%d%d",&a,&b);     //读取两个整数分别为超速和限速
 7     c = a - b;     //计算超速与限速的差值
 8     d = c*100.0/b;     //计算超速百分比
 9     if (d<10 || a<b)
10     {
11         printf ("OK\n");
12     }     //如果超速百分比小于10%或车速小于限速,输出OK
13     else if (d<50)
14     {
15         printf ("Exceed %.lf%%. Ticket 200\n",d);
16     }     //如果超速且超速百分比小于50%,输出超速百分比和罚款金额
17     else 
18     {
19         printf ("Exceed %.lf%%. License Revoked\n",d);
20     }     //如果超速百分比超过50%,输出超速百分比和吊销驾照
21     return 0;
22  } 

2.设计思路

(1)文字描述

第一步:定义四个变量分别为车速(a),限速(b),车速与限速差值(c),超速百分比(d)。

第二步:读取输入的超速和限速的数值,并且计算出超速百分比。(c = a - b; d = c*100.0/b;

第三步:判断如果超速百分比小于10%或车速小于限速,则属于正常行驶(if (d<10 || a<b)

第四步:如果超速百分比大于10%且小于50%,则属于超速行驶

第五步:如果超速百分比大于50%,则应该吊销驾照

(2)流程图

 

3.本题调试过程碰到问题及解决办法

(1)错误提示

(2)问题及解决方法

问题:运算过程中未保留小数导致运算结果出错,输出的超速百分比错误。

解决方法:通过百度查找到,把 d = c*100/b;改为 d = c*100.0/b;,在100后面加 .0之后会在运算过程中会暂时保留小数

 

二.计算机18秋_循环1  7-1 统计学生平均成绩与及格人数

 

1.实验代码

 

 #include<stdio.h>
int main()
{
 int n,i,a,count=0,sum=0;     //输入的数据数(n)循环变量(i)计数和成绩和初始值赋值为0(count=0,sum=0)
 double average;     //定义平均值
 scanf("%d",&n);     //读取输入的数据数
 if(n==0)
 {
  printf("average = 0.0\n");
  printf("count = 0");
 }     //n为0时输出平均成绩和及格人数为0
 else
 {
  for(i=0;i<n;i++)     //n不为0时执行循环
 {
   scanf("%d",&a);
   sum = sum + a;     //计算成绩总和
   if (a>=60)
   count++;     //计算及格人数
 }
  average =1.0* sum / n;     //计算平均成绩
  printf("average = %.1f\n",average);
  printf("count = %d\n",count);
 }     //输出平均成绩和及格人数
 return 0;
}

 

2.设计思路

(1)文字描述

第一步:输入的数据数(n)循环变量(i)计数和成绩和初始值赋值为0(count=0,sum=0)。

第二步:读取输入的数据。

第三步:判断如果输入的数据为0则输出平均成绩和及格人数为0.

第四步:如果输入的数据大于0则执行循环计算平均成绩和及格人数

第五步:输出平均成绩和及格人数

(2).流程图

 

 

 3.本题调试过程碰到问题及解决办法

(1)错误提示

(2)问题及解决方法

问题:没考虑输入的数据为0的情况

解决方法:经过多次的改进编译发现问题并且加了一个判断,如果输入数据为0则输出数据也为0

 

三. 计算机18秋-循环2 7-7 寻找250

1.实验代码

 1 #include<stdio.h>
 2 int main()
 3 {
 4   int a, i = 1;     //输入数据(a)和计数(i)并且把i赋值为1
 5   while(1){
 6   scanf("%d",&a);
 7   if(a != 250){
 8     i = i + 1;     //执行循环读取输入数据如果a不等于250则计数i+1,否则结束循环
 9   }else{
10     break;
11   }
12   }
13   printf("%d",i);     //输出结果
14   return 0;
15 }

2 设计思路

(1)文字描述

第一步:输入数据a,i

第二步:执行循环读取输入数据

第三步:如果a不等于250则计数i+1,否则结束循环

第四步:输出结果

(2)流程图

 3.本题调试过程碰到问题及解决办法

(1)错误提示

 (2)问题及解决方法

问题:用错变量导致编译错误

解决方法:根据编译的提示改正,把&n改为&a

总结:

四. 所学内容

1.学会了编写程序,实现简单的数据处理

2.知道了基本的数据类型

3.学会了如何使用if语句和for语句

4.学会了使用循环嵌套结构

5知道了do-while语句和while语句的不同

遇到的问题

对各种语句使用不熟练,

编写程序的思路不清晰需要反复的修改完善,

编写程序的正确率低

解决方法

平时需要多练习增加对各种语句的熟练程度

解决问题时需要认真的思考整理出清晰的思路

需要更多的阅读相关的材料,增强对所学知识的理解

五. 点评

点评1

点评2

点评3

 

表格

  代码行数 代码时间 博客字数 博客时间 设计知识点
第十周 2700 12 0 0 分支机构
第十一周 3000 14 0 0 循环语句
第十二周 3000 15 0 0 循环结构
第十三周 2800 13 1000 5 循环和函数

 

 

 

posted @ 2018-11-27 20:48  黄兴宇  阅读(198)  评论(4编辑  收藏  举报