文档章节

第七天课程作业回顾

土孩子与弄潮儿
 土孩子与弄潮儿
发布于 2014/08/11 21:51
字数 769
阅读 3
收藏 0

    第七天作业题中有三道题连在一起,后一题是前一题的增强版,这三道题如下:

    3. 编写读取并打印一个整数的语句。

    4. 修改练习3,使其职能读取偶数(2,、4、6等)。

    5.修改练习4,使之在用户输入数字99或输入了6个偶数后,返回用户输入的值。将这些值存储在数组中(提示:需要编写一个循环)。

    第三题和第四题较简单:

#include <stdio.h>
int main(void)
{
    int x;
    scanf("%d",&x);
    printf("%d",x);
    return 0;
}

.

#include <stdio.h>
int main(void)
{
    int x;
    scanf("%d",&x);
    while(x % 2 == 1)
    {
        scanf("%d",&x);
    }
    printf("%d",x);
    return 0;
}

.

    第五题:

#include <stdio.h>
int main(void)
{
    int x[6],i;
    for(i = 0; i < 6; i++)                     /* 2 */
    {
        scanf("%d",&x[i]);                     /* 要求用户输入 */
        while(x[i] % 2 == 1)                   /* 1 */
        {
            scanf("%d",&x[i]);                 /* 当输入是奇数时循环scanf */
        }
    }
    
    for(i=0;i<6;i++)
    {
        printf("%d",x[i]);
    }
    
    return 0;
}

以上仅仅是没有考虑“输入数字99”的代码块。第五题的难点正是:在考虑到“输入数字99”后如何改写以上这段代码。


思维过程:

考虑到用户输入的、存储在x[0]中的值,会有三种情况:偶数、非99奇数、99。当输入的是非99奇数时,循环scanf,直到输入的是偶数或者99;当输入的是偶数时,则for语句循环体结束,x值+1,进行x[1]值的输入;当输入是99时,for语句循环体结束,x值+1,不进行x[1]值的输入而在for的condition阶段跳出、执行statement后面的语句。


因此在两处需要修改:图中注释的两个地方。

在第一个修改处,试问什么时候循环,什么时候跳出 while?答案是:当输入是奇数且不为99的时候循环,当输入是偶数或者为99时跳出while。因此使 while(x % 2 == 1)变为 while( x %2 == 1 && x != 99)即可。

在第二个修改处,

考虑到 condition 前输入的 x 值无非两种,偶数和99。当在 condition 前输入值为偶数时 for(i=0;i <6;i++)可以无变化;而在 condition 前输入的值为 99 时需要跳出 for,这样一来就需要对 for(i=0;i < 6;i++)进行更改,斟酌后改为 for(i=0;i< 6 && x[ i-1 ] != 99;i++)。注意:因为到 condition 前 i 已经 +1,因此到 condition 后进行判断的值是 x[ i - 1]。

    假如跳出for了,若x[ n ]等于99,则输出x[ n ]前面的所以x值。例如x[ 4 ]等于99,则输出x[ 1 ]、x[ 2 ]、x[ 3 ]的值。

最后修改好的程序如下:

#include <stdio.h>
int main(void)
{
    int x[6], i;
    int main(void)
    {
        for(i=0;i < 6 && x[i-1] != 99;i++)
        {
            scanf("%d",&x[i]);
            while(x[i] % 2 == 1 && x[i] != 99)
            {
                scanf("%d",&x[i]);
            }
        }

        for(i = 0;i < 6 && x[i] != 99;i++)
        {
            printf("%d", x[i]);
        }

        return 0;
}



© 著作权归作者所有

上一篇: 人生态度
土孩子与弄潮儿
粉丝 0
博文 5
码字总数 2401
作品 0
杭州
私信 提问
进入币圈的十天

上周一开始了解区块链,到今天过去10天, 回顾一下这十天自己都做了什么。 第一天 了解如何购买比特币,早已经知道国内的交易所都已经关闭了,如何用人民币买比特币就成了问题,于是找了下,...

唐晓阳
2017/12/07
0
0
独家 | CMU 2018 秋季《深度学习导论》中文字幕版今日上线!

AI 研习社获得官方授权,汉化翻译CMU 2018 秋季《深度学习导论》课程,今日正式上线中文字幕版。 CMU 2018 秋季《深度学习导论》为官方开源最新版本,由卡耐基梅隆大学教授 Bhiksha Raj 授权...

雷锋字幕组
2018/09/27
0
0
一个小小的AI训练营竟然卧虎藏龙

年前,我来到了一个近墨者黑的地方,黑的不能再黑。。。 这个神秘的组织叫做 21 天入门机器学习训练营。 讲真的,当初报名这个训练营,我是冲着机器学习来的,主要是好奇+想转型,而且听说这...

AI科技大本营
02/26
0
0
不会踩坑的机器学习课程 Top 5 ,其中两个由吴恩达主讲

雷锋网(公众号:雷锋网) AI 科技评论按:凭借强大的统计学基础,机器学习正成为当下最有趣、发展节奏最快的计算机科学领域之一。机器学习可以被应用到无数的行业和应用中,以提供更高效和智能...

黄善清
03/05
0
0
NLP 领域的 C 位课程!斯坦福 CS224d 中英字幕版重磅上线

今日,斯坦福大学「CS224d:深度自然语言处理课程」中英字幕版重磅上线! 本次翻译的 CS224d (2016-2017)课程视频为斯坦官方开源最新版本,由斯坦福大学教授、 Salesforce 的首席科学家 Ri...

雷锋字幕组
2018/05/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

读书笔记:深入理解ES6 (五)

第五章 解构:使数据访问更便捷 第1节 为什么使用解构功能?   在ES5中,开发者们从对象、数组中获取特定数据并赋值给变量,编写了很多看起来同质化的代码。例如: 1 let options = {2 ...

张森ZS
3分钟前
0
0
CentOS7 yum方式安装MySQL5.7

在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB。 1 下载并安装MySQL官方的 Yum Repository [root@localho...

roockee
11分钟前
2
0
Allegro三种自定义设置快捷键的方法

Allegro自定义设置快捷键的三种方法: 1、在Allegro PCB editor 命令窗口直接定义 2、通过修改用户变量env文件来设置快捷键 3、定义笔画为快捷键 1、在Allegro PCB editor 命令窗口直接定义 ...

demyar
16分钟前
0
0
如何做一张能让人眼前一亮的大屏?

作为在职场驰骋的社会人,提到数据可视化大家应该都不陌生了。数据可视化的作用也不用我多说,主要是利用图形化手段,更清晰直观地将数据展示。多层次、交互式的可视化分析能够方便决策者理解...

朕想上头条
16分钟前
0
0
TL138/1808/6748-EthEVM开发板硬件CPU、FLASH、RAM

TL138/1808/6748-EthEVM是广州创龙基于SOM-TL138/1808/6748核心板开发的一款开发板,具有三个网络接口。由于SOM-TL138/1808/6748核心板管脚兼容,所以此三个核心板共用同一个底板。开发板采用...

Tronlong创龙
21分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部