| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7729 人关注过本帖
标题:判断一系列数中奇数 偶数个数问题
只看楼主 加入收藏
FURY
Rank: 1
来 自:兰州
等 级:新手上路
帖 子:7
专家分:0
注 册:2015-10-10
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:10 
判断一系列数中奇数 偶数个数问题
程序要求
        你的程序要读入一系列正整数数据,输入-1表示输入结束,-1本身不是输入的数据。程序输出读到的数据中的奇数和偶数的个数。

自己写的代码:
#include<stdio.h>
main()
{
    int x;
    int n=0;//偶数个数
    int j=-0;//奇数个数
    printf("Enter to -1 end\n");
    do {
        printf("Enter:");
        scanf("%d",&x);
       if (x%2==0) n++;
       else j++;
    }while (x>0&&x<100000&&x!=-1);
    printf("%d %d",j,n);
}
   
经测试这代码是不符合要求的,自己又写不出其他的了 求帮忙
搜索更多相关主题的帖子: include 正整数 Enter 
2016-11-07 14:38
幻境猫
Rank: 2
等 级:论坛游民
帖 子:13
专家分:43
注 册:2016-11-7
收藏
得分:20 
修改代码如下:

#include<stdio.h>
main()
{
    int x;
    int n = 0;//偶数个数
    int j = 0;//奇数个数
    printf("Enter to -1 end\n");
    do {
        printf("Enter:");
        scanf("%d",&x);
        if( (x > 0) && (x < 32767)) {
            if (x%2 == 0)
                n++;
            else
                j++; }
        else if( x == -1)
            break;
        else
            printf("x输入错误,请重新输入\n");
    }while ( 1);
    printf("奇数为:    %d\n偶数为:    %d\n",j,n);

}

建议:
在输入条件的时候每个条件最好用空格隔开,要不然容易出现优先级问题,或者进入C的漏洞。   
例: m=-1;  人为解释为m = -1; 实际为:m =- 1;等价于 m = m - 1;
注意int的取值范围为-32768 - 32767,要不然可能会出现奇怪的问题。
2016-11-07 15:03
alice_usnet
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:18
帖 子:370
专家分:2020
注 册:2016-3-7
收藏
得分:0 
程序代码:
#include<stdio.h>
main()
{
    int x;
    int n=0;//偶数个数
    int j=-0;//奇数个数
    printf("Enter to -1 end\n");
    while(scanf("%d",&x)==1 && x!=-1) {
        //printf("Enter:");
        //scanf("%d",&x);
       if(x<=0) continue;
       else if (x%2==0) n++;
       else j++;
    }
    printf("%d %d",j,n);
}

未佩好剑,转身便已是江湖
2016-11-07 15:07
幻境猫
Rank: 2
等 级:论坛游民
帖 子:13
专家分:43
注 册:2016-11-7
收藏
得分:0 
int j=-0;
这么赋值有什么好处吗?
2016-11-07 15:12
alice_usnet
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:18
帖 子:370
专家分:2020
注 册:2016-3-7
收藏
得分:0 
以下是引用幻境猫在2016-11-7 15:12:36的发言:

int j=-0;
这么赋值有什么好处吗?

没有什么好处

未佩好剑,转身便已是江湖
2016-11-07 15:17
FURY
Rank: 1
来 自:兰州
等 级:新手上路
帖 子:7
专家分:0
注 册:2015-10-10
收藏
得分:0 
回复 3楼 alice_usnet
    while(scanf("%d",&x)==1 && x!=-1)
这句中的 表达式该如何理解?
2016-11-07 15:20
幻境猫
Rank: 2
等 级:论坛游民
帖 子:13
专家分:43
注 册:2016-11-7
收藏
得分:0 
首先while 循环转起来
然后用scanf输入要判断奇偶的数字x,并利用scanf的返回值检查一下看看是否录入成功,若失败结束循环
录入成功后,再检查x是否为-1
若为-1,结束循环
2016-11-07 15:33
alice_usnet
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:18
帖 子:370
专家分:2020
注 册:2016-3-7
收藏
得分:0 
以下是引用FURY在2016-11-7 15:20:59的发言:

    while(scanf("%d",&x)==1 && x!=-1)
这句中的 表达式该如何理解?

读取一个数并且这个数不为-1

未佩好剑,转身便已是江湖
2016-11-07 15:36
alice_usnet
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:18
帖 子:370
专家分:2020
注 册:2016-3-7
收藏
得分:0 
以下是引用幻境猫在2016-11-7 15:33:28的发言:

首先while 循环转起来
然后用scanf输入要判断奇偶的数字x,并利用scanf的返回值检查一下看看是否录入成功,若失败结束循环
录入成功后,再检查x是否为-1
若为-1,结束循环


未佩好剑,转身便已是江湖
2016-11-07 15:38
幻境猫
Rank: 2
等 级:论坛游民
帖 子:13
专家分:43
注 册:2016-11-7
收藏
得分:0 
回复 9楼 alice_usnet
还是老司机开车稳啊,一句话就明明白白的解释清楚了
我这到时班门弄斧了
2016-11-07 15:45
快速回复:判断一系列数中奇数 偶数个数问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028182 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved