| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 538 人关注过本帖
标题:运行有问题,找错
只看楼主 加入收藏
韩学敏
Rank: 2
等 级:论坛游民
帖 子:52
专家分:26
注 册:2012-11-3
结帖率:82.35%
收藏
 问题点数:0 回复次数:7 
运行有问题,找错
#include<iostream.h>
void main()
{
    char a[8],b[8];

    int i=0,j=0;
    cout<<"please input a:";
    do
    {
        cin>>a[i];
    }while(a[i]!='\n');
    cout<<"please input b:";
    do
    {
        cin>>b[i];
    }while(b[i]!='\n');
        
    if(a[0]==b[0])
        cout<<"they are equal!"<<endl;
    else if(a[0]=='r'&&b[0]=='s')
        cout<<"the winner is a!"<<endl;
    else if(a[0]=='r'&&b[0]=='c')
        cout<<"the winner is b!"<<endl;
    else if(a[0]=='c'&&b[0]=='s')
        cout<<"the winner is b!"<<endl;
    else if(a[0]=='c'&&b[0]=='r')
        cout<<"the winner is a!"<<endl;
    else if(a[0]=='s'&&b[0]=='r')
        cout<<"the winner is b!"<<endl;
    else if(a[0]=='s'&&b[0]=='c')
        cout<<"the winner is a!"<<endl;
}
红色字输出不了,前面的赋值也不成功,求解释
搜索更多相关主题的帖子: please include 
2013-09-24 19:28
303770957
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:838
专家分:2125
注 册:2005-9-10
收藏
得分:0 
變量i一直是0

♂ 死后定当长眠,生前何须久睡。♀
2013-09-24 23:32
fxbszj
Rank: 5Rank: 5
来 自:阿修罗界
等 级:职业侠客
威 望:4
帖 子:163
专家分:331
注 册:2012-10-8
收藏
得分:0 
同2楼,do-while循环,请问第一个循环怎么结束。最后的运行的结果就是一遍又一遍的给a[0]赋值。do-while死循环,语句不会结束,当然不会进行后面的
2013-09-25 12:55
韩学敏
Rank: 2
等 级:论坛游民
帖 子:52
专家分:26
注 册:2012-11-3
收藏
得分:0 
回复 3楼 fxbszj
#include<iostream.h>
void main()
{
    char a[8],b[8];
    int i=0,j=0;



    cout<<"please input a:";
    cin>>a[i];
    while(a[i]!='\n')
    {
        i++;
        cin>>a[i];
    }
    cout<<"please input b:";
    cin>>b[j];
    while(b[j]!='\n')
    {
        j++;
        cin>>b[j];
    }


        
    if(a[0]==b[0])
        cout<<"they are equal!"<<endl;
    else if(a[0]=='r'&&b[0]=='s')
        cout<<"the winner is a!"<<endl;
    else if(a[0]=='r'&&b[0]=='c')
        cout<<"the winner is b!"<<endl;
    else if(a[0]=='c'&&b[0]=='s')
        cout<<"the winner is b!"<<endl;
    else if(a[0]=='c'&&b[0]=='r')
        cout<<"the winner is a!"<<endl;
    else if(a[0]=='s'&&b[0]=='r')
        cout<<"the winner is b!"<<endl;
    else if(a[0]=='s'&&b[0]=='c')
        cout<<"the winner is a!"<<endl;
}
很不好意思,我改了一下,还是不行,能不能帮忙再看看,谢谢了。。
2013-09-25 19:09
IT男year
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:82
专家分:106
注 册:2013-6-9
收藏
得分:0 
'\n'不是字符所以它进不来了数组,所以你循环是死循环。将'\n'改成别的字符就好了!请看下面程序:
#include<iostream.h>
 void main()
 {
     char a[8],b[8];
     int i=0,j=0;
 


    cout<<"please input a:";
     cin>>a[i];
     while(a[i]!='n')
     {
         i++;
         cin>>a[i];
     }
     cout<<"please input b:";
     cin>>b[j];
     while(b[j]!='n')
     {
         j++;
         cin>>b[j];
     }   
     if(a[0]==b[0])
         cout<<"they are equal!"<<endl;
     else if(a[0]=='r'&&b[0]=='s')
         cout<<"the winner is a!"<<endl;
     else if(a[0]=='r'&&b[0]=='c')
         cout<<"the winner is b!"<<endl;
     else if(a[0]=='c'&&b[0]=='s')
         cout<<"the winner is b!"<<endl;
     else if(a[0]=='c'&&b[0]=='r')
         cout<<"the winner is a!"<<endl;
     else if(a[0]=='s'&&b[0]=='r')
         cout<<"the winner is b!"<<endl;
     else if(a[0]=='s'&&b[0]=='c')
         cout<<"the winner is a!"<<endl;
 }
2013-09-25 20:41
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
程序代码:
#include <iostream>
using namespace std;

int main()
{
    char a[8],b[8];

    ios::fmtflags save = cin.flags() & ios::skipws;
    cin.unsetf( ios::skipws );

    cout << "please input a:";
    for( int i=0; ; ++i )
    {
        if( i==7 )
        {
            a[i] = '\0';
            break;
        }

        cin >> noskipws >> a[i];
        if( a[i] == '\n' )
        {
            a[i] = '\0';
            break;
        }
    }

    cout << "please input b:";
    for( int i=0; ; ++i )
    {
        if( i==7 )
        {
            b[i] = '\0';
            break;
        }

        cin >> b[i];
        if( b[i] == '\n' )
        {
            b[i] = '\0';
            break;
        }
    }

    cin.setf( save );

    …………

    return 0;
}


不过,与其这么麻烦,为什么不用 string line; getlin(cin,line) ???
2013-09-26 09:21
西安郑鑫
Rank: 7Rank: 7Rank: 7
来 自:陕西
等 级:黑侠
帖 子:163
专家分:624
注 册:2013-9-26
收藏
得分:0 
以下是引用rjsp在2013/9/26 09:21:06的发言:

#include <iostream>
using namespace std;

int main()
{
    char a[8],b[8];

    ios::fmtflags save = cin.flags() & ios::skipws;
    cin.unsetf( ios::skipws );

    cout << "please input a:";
    for( int i=0; ; ++i )
    {
        if( i==7 )
        {
            a = '\0';
            break;
        }

        cin >> noskipws >> a;
        if( a == '\n' )
        {
            a = '\0';
            break;
        }
    }

    cout << "please input b:";
    for( int i=0; ; ++i )
    {
        if( i==7 )
        {
            b = '\0';
            break;
        }

        cin >> b;
        if( b == '\n' )
        {
            b = '\0';
            break;
        }
    }

    cin.setf( save );

    …………

    return 0;
}

不过,与其这么麻烦,为什么不用 string line; getlin(cin,line) ???

LZ应该是新手,他这个程序是培养逻辑思维能力,你说的这个可以当做LZ的提高训练。

Hello World!------鑫花璐放
2013-09-26 17:01
303770957
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:838
专家分:2125
注 册:2005-9-10
收藏
得分:0 
回复 6楼 rjsp
新手一般对标准库不太了解,何谈使用乎?
string line; getlin(cin,line); 这些都是标准库里面的东西,LZ是不是能看懂还不知道。

♂ 死后定当长眠,生前何须久睡。♀
2013-09-26 17:07
快速回复:运行有问题,找错
数据加载中...
 
   



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

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