第1次作业

 

一.  分支结构中题目7-9 高速公路超速处罚

按照规定,在高速公路上行使的机动车,达到或超出本车道限速的10%则处200元罚款;若达到或超出50%,就要吊销驾驶证。请编写程序根据车速和限速自动判别对该机动车的处理。

输入格式:

输入在一行中给出2个正整数,分别对应车速和限速,其间以空格分隔。

输出格式:

在一行中输出处理意见:若属于正常行驶,则输出“OK”;若应处罚款,则输出“Exceed x%. Ticket 200”;若应吊销驾驶证,则输出“Exceed x%. License Revoked”。其中x是超速的百分比,精确到整数。

1.实验代码

#include<stdio.h>
int main()
{
    int s,l,m;
    double i;
    scanf("%d %d",&s,&l);
    m=s-l;
    i=m*100.0/l;
    if(i<10 || s<l)
    {
        printf("OK");
    }
    else if(i<50)
    {
        printf("Exceed %.0f%%. Ticket 200",i);
    }
    else
    {
        printf("Exceed %.0f%%. License Revoked",i);
    }    
    
    return 0;
}

2.设计思路

(1)文字描述

第一步:定义车速b,与限速c
第二步:计算车速与限速的差值(b-c)除以限速b,得出超速度或者未超速的百分比,乘以100,得到百分比的整数位定位x
第三步:将所得的x与10与50作比较
第四步:x <10即为OK,否则即输出题目对应的英文

(2)流程图

 

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

问题:用Devc++做的时候可以正常运行但是只限于整数部分,输入其他带小数时,则不能输出

 


解决办法:同学说要用double型来定义x,便将float改为了double,双精度函数,精度更高

 

 

 

 二. 循环1中题目7-1 统计学生平均成绩和及格人数

本题要求编写程序,计算学生们的平均成绩,并统计及格(成绩不低于60分)的人数。题目保证输入与输出均在整型范围内。

 

输入格式:

 

输入在第一行中给出非负整数N,即学生人数。第二行给出N个非负整数,即这N位学生的成绩,其间以空格分隔。

 

输出格式:

 

按照以下格式输出:

average = 成绩均值

count = 及格人数

1.实验代码

#include<stdio.h>
int main()
{
int count,i=1,n,grade;
double sum;
count=0;
sum=0;
scanf("%d",&n);
if(n!=0){
while(i<=n){
scanf("%d",&grade);
if(grade>=60)
count++;
sum=sum+grade;
i++;
}
printf("average = %.1f\n",sum/n);}
else
printf("average = 0.0\n");
printf("count = %d",count);
return 0;
}

 

2.设计思路

(1)文字描述·

第一步:定义整型变量n,count,i,grade
第二步:浮点型变量average=0,sum=sum+grade
第三步:在循环框中加入条件(grade>=60)的时候count=count+1
第四步:按要求输出变量

(2)流程图

 

 

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

问题:一直显示运行超时,而且把for和while用法弄混了...

 

解决办法:换了一个思路,分清for和while的用法。

三. 循环1中题目7-5 最佳情侣身高差

 

专家通过多组情侣研究数据发现,最佳的情侣身高差遵循着一个公式:(女方的身高)×1.09 =(男方的身高)。如果符合,你俩的身高差不管是牵手、拥抱、接吻,都是最和谐的差度。

下面就请你写个程序,为任意一位用户计算他/她的情侣的最佳身高。

输入格式:

输入第一行给出正整数N(≤),为前来查询的用户数。随后N行,每行按照“性别 身高”的格式给出前来查询的用户的性别和身高,其中“性别”为“F”表示女性、“M”表示男性;“身高”为区间 [1.0, 3.0] 之间的实数。

输出格式:

对每一个查询,在一行中为该用户计算出其情侣的最佳身高,保留小数点后2位。

1.实验代码

#include<stdio.h>
int main()
{
    int n ;
    char x;
    double height;
    scanf("%d",&n);
    int i;
    for(i=0;i<n;i++){
        scanf(" %c %lf",&x,&height);
        if(x == 'M')
        printf("%.2f\n",height / 1.09);
        if(x == 'F')
        printf("%.2f\n",height * 1.09);
    }
    return 0;
}

2.设计思路

(1)文字描述

第一步:分别定义一个字母的类型和一个数字的类型

第二步:在for循环中分别输入性别和体重

第三步:输入若为女性则根据(height * 1.09)计算最佳男性身高

第四步:输入若为男性则根据(height / 1.09)计算最佳女性身高

(2)流程图

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

问题:用DevC++写的时候一直编译错误,检查后发现'F'和'M'都写成了"F"和"M"

 

解决办法:"F"和"M"改成'F'和'M'

 

总结和学习进度条

1.总结:

(1)分清了for和while的用法

(2)知道了float和double的区别

2.学习进度条:

(1)表格

 

(2)折线图

 3.评价的同学:

张学健:https://www.cnblogs.com/zxj0402/p/9977677.html

刘昱淞:https://www.cnblogs.com/max244187/p/10003330.html

王杰:https://www.cnblogs.com/123456wj/p/10028839.html

posted @ 2018-11-29 21:43  闫慧欣闫慧欣xin123  阅读(490)  评论(3编辑  收藏  举报