• hdu 2006 求奇数的乘积(c语言)


    hdu 2006 求奇数的乘积

    link

    题目描述

    Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
    Total Submission(s): 121649 Accepted Submission(s): 73907

    Problem Description
    给你n个整数,求他们中所有奇数的乘积。

    Input
    输入数据包含多个测试实例,每个测试实例占一行,每行的第一个数为n,表示本组数据一共有n个,接着是n个整数,你可以假设每组数据必定至少存在一个奇数。

    Output
    输出每组数中的所有奇数的乘积,对于测试实例,输出一行。

    Sample Input
    3 1 2 3
    4 2 3 4 5

    Sample Output
    3
    15

    Author
    lcy

    问题解答

    #include <stdio.h>
    int main()
    {
        int n, number, multiplication;
        while( scanf( "%d", &n) != EOF )
        {
            multiplication = 1;
            for( int i=1; i<=n; i++)
            {
                scanf( "%d", &number );
                if( number%2 == 1 ) multiplication*=number;
            }
            printf( "%d
    ", multiplication );
        }
    }
    

    笔记

    1. 题目要求“包含多个测试实例”,说明要用while(scanf("%d",&n)!=EOF)循环进行嵌套。
    2. 题目要求“每行的第一个数为n,表示本组数据一共有n个”,提示很明显,n是一个要求用户输入的控制内层循环的变量,内部循环一次就要用户输入一个值并判断这个值是不是奇数(在这边我采用的是for循环,因为短)。
    3. 第10、11行,注意:不能合并为if(scanf("%d",&number)%2==1) multiplication*=number;否则判断无效,具体为什么不可以的原理我也没有弄清楚,可能涉及一些其他更深奥的东西,反正进行测试的时候就会出错。
    4. 第4、7行,赋值multiplication=1需注意在while循环内、for循环外,定义int multiplication则要放在while函数外(这一部分知识是关于函数局部变量和调用机制的,知识点挺杂,不详细介绍了;一般多码码代码,多出几次错,多调试几次,自己就get到那个点了)
  • 相关阅读:
    PHP的错误和异常处理
    异步并行批处理框架设计的一些思考
    系统出错信息设计
    SpringMVC+Shiro权限管理
    jstl教程
    为什么Lisp语言如此先进
    「只差程序员」为什么会招黑? [转自:知乎]
    大侠是怎样炼成的 周昆 [转]
    【OpenGL】glFinish()和glFlush()函数详解-[转]
    VC++ 6.0中实现三叉切分窗口与多视图 [转]
  • 原文地址:https://www.cnblogs.com/yuzilan/p/10626218.html
Copyright © 2020-2023  润新知