注册 登录
编程论坛 C++教室

求解答...急。

hebinjie33 发布于 2013-05-25 18:14, 397 次点击
#include<iostream>
using namespace std;


class Char
{
    public:
        void search_char();   
    private:
        char a[80];            
        int p;                //循环次数
        char n;                //所需要查找的字母
        void set_char();    //输入函数
};

void Char::set_char()
{   
    cin>>n;
    cin>>a;
}

void Char::search_char()
{
    int i,j,u;            //u,j分别为数组下标变量和记录变量
    cin>>p;
    for(i=0;i<p;i++)
    {
        set_char();
        u=0;j=100;        //给u,j赋初值,为了下面程序能顺利执行
        while(a[u]!='\0')
        {
            if(n==a[u])
            {
                j=u;
            }
            u++;
        }
        if(j!=100)
            cout<<j<<endl;
        else
            cout<<"Not Found"<<endl;
    }
}

int main()
{
    Char c1;
    c1.search_char();
    return 0;
}
   
这是我的代码。
原题目是:
输入一个正整数repeat (0<repeat<10),做repeat次下列运算:
输入一个字符,再输入一个以回车结束的字符串(少于80个字符),在字符串中查找该字符,如果找到,输出该字符在字符串中所对应的最大下标 (下标从0开始);否则输出"Not Found"。输出格式为"index = %d\n"
输入输出示例:括号内为说明
输入:
2        (repeat=2)
m               (字符'm')
programming    (字符串"programming")
a        (字符'a')
1234        (字符串"1234")
输出:
index = 7         ('m'在"programming"中对应的最大下标是7)
Not Found        ("1234"中没有'a')

我的代码可以实现,但是系统只给我50分,提示我:“错误:输入3 错误输出index:5”  

不知道是怎么回事,求解。
3 回复
#2
hebinjie332013-05-25 18:16
不好意思,复制漏了:cout<<j<<endl;改为cout<<"index:"<<j<<endl;  在线求解答啊。。。
#3
hebinjie332013-05-25 18:20
晕,我自己解决了,输出格式错了而已。
#4
hpshuaia2013-05-27 16:59
....
1