| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 539 人关注过本帖
标题:求助:用if语句的时候产生了歧义
只看楼主 加入收藏
congty
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-1-19
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
求助:用if语句的时候产生了歧义
输入n个数,输出最大的数,我做的代码如下,我想用#做为结束符号,可是程序将#也当做一个数了,请朋友们帮我修改下代码,代码如下,不胜感激!
#include <iostream>
using namespace std;
int main()
{
    int a;
    int b;
    int upper;
    cout<<"please enter a number."<<endl;
    cin>>upper;            //先输入一个数作为最大数
    char z;               
    while(cin>>z)
    {
        if(z!='#')     //如果输入的不等于#,就比较z与upper的大小,取打者为upper
        {
            if(upper<(int)z)
            {
                upper=(int)z;
            }
        }
        else if(z=='#')  //如果输入的是#,输出最大者,结束
        {
            cout<<upper<<endl;
            cin>>b;          //这里无实质意义,我用的是vc2008,为了防止运行结束后还没看到结果就退出窗口
            return 0;
        }
    }
        
}
搜索更多相关主题的帖子: 语句 歧义 
2010-01-25 20:06
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:20 

#include <iostream>
using namespace std;
int main()
{
    int a;
    int b;
    int upper;
    cout<<"please enter a number."<<endl;
    cin>>upper;            //先输入一个数作为最大数
    char z;               
//    while(cin>>z)
          //循环不建议使用输入函数为条件,建议使用一个变量为条件.那么在循环体中,修改这个变量而使用循环自然结束

    int xf;
    xf=1
    while(xf)

    {
        cin>>z
        if(z!='#')     //如果输入的不等于#,就比较z与upper的大小,取打者为upper
        {
            if(upper<(int)z)
            {
                upper=(int)z;
            }
        }
        //这里为什么还要再判断一下呢?上面已判断过了 z ,那么这里直接使用否就可以了.
        //else if(z=='#')  //如果输入的是#,输出最大者,结束
        else
        {
            cout<<upper<<endl;
            xf=0;
//xf=0 那就循环条件就变成假了,就自然结束循环
        }
    }
            cin>>b;          //这里无实质意义,我用的是vc2008,为了防止运行结束后还没看到结果就退出窗口
            return 0;        
}

---------------------------------
不太懂C ,只以自己以前的理解说一下.如果有错误的地方请谅解.

授人于鱼,不如授人于渔
早已停用QQ了
2010-01-25 20:34
congty
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-1-19
收藏
得分:0 
谢谢
2010-01-25 20:36
congty
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-1-19
收藏
得分:0 
回复 2楼 风吹过b
晕,测试了下,结果还是将#作为比较值了,如果所有输入的书小于#的ASCII,输出的最大数还是#的ASCII码值
2010-01-25 20:44
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
我这里没装C 语言
也没办法给你测试了.

如果还是将 # 当作比较值了,那么你 debug 下,

输入一个#后,看看一行里的

if(z!='#')

这里面, z 是什么值, 与 '#' 是不是相同.

是不是这个判断条件写错了.

授人于鱼,不如授人于渔
早已停用QQ了
2010-01-25 20:52
congty
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-1-19
收藏
得分:0 
搞不定,都不知道这样的if语句有什么毛病
2010-01-25 21:03
快速回复:求助:用if语句的时候产生了歧义
数据加载中...
 
   



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

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