第一次作业

一· 7-7 计算火车运行时间 (15 分)

本题要求根据火车的出发时间和达到时间,编写程序计算整个旅途所用的时间。

输入格式:

输入在一行中给出2个4位正整数,其间以空格分隔,分别表示火车的出发时间和到达时间。每个时间的格式为2位小时数(00-23)和2位分钟数(00-59),假设出发和到达在同一天内。

输出格式:

在一行输出该旅途所用的时间,格式为“hh:mm”,其中hh为2位小时数、mm为2位分钟数。

输入样例:

1201 1530

输出样例:

03:29
1.实验代码
#include<stdio.h>
int main()
{
    int a, b, h1, h2, m1, m2, h, m;
    scanf("%d %d", &a, &b);
    h1 = a/100;
    h2 = b/100;
    m1 = a%100;
    m2 = b%100;
    if(m2 < m1)
    {
        m = m2+60-m1;
        h = h2-h1-1;
    }else 
    {
        m = m2-m1;
        h = h2-h1;
    }
    printf("%02d:%02d", h, m);
    return 0;
}

2.设计思路

(1) 文字描述

第一步:输入的是四位数,前俩位为小时后俩位是分钟,小时是四位数除以100取整,分钟是四位数除以100取余。

第二步:判断分钟相减是否小于零,如果小于零需要从小时借位。不小于零输出旅途所用时间。

第三步:在借位时,借的是60而不是100,借位后继续计算然后输出旅途所用时间。

(2)流程图

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

认真阅读这道题目后,我发现这道题有几个地方必须要过关。

1.小时与分钟的选取  2.判断分钟是否够用  3.当后者分钟过小时需要错位,而错位是60

4.输出时小时与分钟格式为hh:mm

在做题时我就遇到了输出格式错误的问题,我输出是h:mm型不符合题目要求。

后来向同学请教如何输出hh:mm型,最后知道输出时要保证是俩位要用“%.2d”,而我用的却是“%d”。

二·7-4 求奇数和 (15 分)

本题要求计算给定的一系列正整数中奇数的和。

输入格式:

输入在一行中给出一系列正整数,其间以空格分隔。当读到零或负整数时,表示输入结束,该数字不要处理。

输出格式:

在一行中输出正整数序列中奇数的和。

输入样例:

8 7 4 3 70 5 6 101 -1

输出样例:

116
1.实验代码
#include<stdio.h>
int main()
{
    int x, i = 0;
    scanf("%d", &x);
    while(x>0)
    {
        if(x % 2 == 1)
        {
            i = i + x;
        }
        scanf("%d", &x);
    }
    printf("%d", i);
    
    return 0;
}

2.设计思路

(1)文字描述

第一步:输入整数x,输入奇数和为i

第二步:判断x是否为正整数

第三步:判断x是否为奇数

第四步:求出所有奇数和,输出i

(2)流程图

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

循环是学习C语言的重点与难点。

然而这道题我却犯了一个低级错误,弄混“=”与“==”的意义,经过自己的反省找到正确答案。

这道题在循环1里算是简单的,拿到这里把错误写出来是为了时刻提醒自己不可以犯同样错误。

 

三·7-7 寻找250 (10 分)

 

对方不想和你说话,并向你扔了一串数…… 而你必须从这一串数字中找到“250”这个高大上的感人数字。

输入格式:

输入在一行中给出不知道多少个绝对值不超过1000的整数,其中保证至少存在一个“250”。

输出格式:

在一行中输出第一次出现的“250”是对方扔过来的第几个数字(计数从1开始)。题目保证输出的数字在整型范围内。

输入样例:

888 666 123 -233 250 13 250 -222

输出样例:

5

 1.实验代码

#include<stdio.h>
int main()
{
    int x;
    char a[999];
    scanf("%d", &x);
    int i = 1;
    while(x != 250)
    {
        scanf("%d", &x);
        i++;
    }
    printf("%d", i);
    return 0;
}

2.设计思路
(1)文字描述

第一步:构造一个数列

第二步:给x赋值并构造一个循环变量i

第三步:让其循环,当x = 250 时输出i的值

(2)流程图

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

认真阅读题目后,我自我感觉这道题很简单,但是在开始敲代码时我发现我错了,在面对这道题时我发现我无从下手。

直到后来我查阅资料知道可以构造一个数列完成。解决这一问题后我豁然开朗,但还是把“!=”与“=!”整混了,

后来自己多次尝试并向同学请教得知“!=”是不等于。

 四·总结

从最开始的“Hello Word”开始了解编程,让我受益匪浅,慢慢喜欢上编程。

1.所学内容

在这几周的学习中,我学习到每个代码开始都要有一个头文件,结束时要有“return 0”,在求平均数保留小数时不能忘了乘1.0,这个很容易让人忘记,应该牢记。

在循环学习中,我深入了解了while,do while,for循环的使用。for语句在使用时()里面应该用“;”间隔,而我经常犯错用“,”间隔。

一个数的几次幂在电脑中要用pow表示,在使用数学公式时需要插入数学的头文件。我也了解了基本函数的使用。

2..遇到问题及解决方法

1·在编程中“=”为赋值的意思,而“==”为等于的意思,我经常把“=”当成等于使用。

2·在输入一个数让其小于等于x时,总是在小于等于加一个空格。

3·总是忘记保留小数,直接%d输出。

以上问题都是一些小问题,但导致问题所在还是练习代码较少,因此我应多练习,避免不应该放错误。

在遇到不会问题时,应该多思考,及时向老师与同学请教。

五·点评

1.点评阮曙光同学 https://www.cnblogs.com/diqiu/p/10041671.html

2.点评李晓旭同学 https://www.cnblogs.com/lixiaoxu695022762/p/9999202.html

3.点评苏末然同学https://www.cnblogs.com/smr2018023977/p/10035661.html

 

 

posted on 2018-11-30 16:43  段连玉  阅读(1420)  评论(4编辑  收藏  举报

导航