预定程序员 2023-10-08 17:32 采纳率: 65.9%
浏览 7

openjudge.找第一个只出现一次的字母c++

openjudge题目,代码可以检测输出只出现一次的字母,但是没有只出现一次的字母时,却没有输出结果,已经写了代码输出no,但是不起作用

img



```c++

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
    char a[1000000];
    int i,j,len=0,k;
    while((a[i]=getchar())!='\n')
    {i++;}
    len=strlen(a);
    for(i=0;i<len;i++)
    {
        k=0;
        for(j=0;j<len;j++)
        {
            if(a[i]==a[j])
            { k++;}
        }
        if(k==1)
        {
            cout<<a[i]<<endl;
            break;
        }
    }
    if(k!=1)
    {cout<<"no"<<endl;}
    return 0;
}

img

```

  • 写回答

2条回答 默认 最新

  • One Wan 2023-10-08 18:07
    关注

    c语言中 字符串 是 一个字符数组,并且最后一个字符之后是'\0'
    所以你输入完需要在最后一个字符后一个位置加一个'\0'

    你还有一个问题就是 你的i没有初始化

        char a[1000000];
        int i=0,j,len=0,k;
        while((a[i]=getchar())!='\n')
        {i++;}
        a[i] = '\0';
    
    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 10月8日