忧默的小男孩 2022-09-02 11:33 采纳率: 94.4%
浏览 43
已结题

为什么写的代码运行不正确,思想应该是正确的吧?

img

img


#include <iostream>
#include <cstdio>
#include <cstring>

using namespace std;

int main(){
    char a[100000];
    int count=0;
    fgets(a,100000,stdin);
    for(int i=0;i<100000;i++){
        int flag=1;
        if(a[i]=='\0') break;
        for(int j=0,len=strlen(a);j<len;j++){
            if(i==j) continue;
            if(a[i]==a[j]){
                flag=0; 
                break;
            }
        }
        if(flag=1){
            cout << a[i] << endl;
            count++;
        }
    }
    if(count==0) cout << "no" << endl;
}

  • 写回答

4条回答 默认 最新

  • CSDN专家-link 2022-09-02 11:35
    关注

    运行不正确是啥现象啊
    a数组建议放到main函数外,作为全局变量,申请的空间大了
    22行写错了,应该是if(flag == 1)
    你这代码肯定是不行的,双循环肯定超时,修改如下:

     
    #include <iostream>
    #include <cstdio>
    #include <cstring>
     
    using namespace std;
    char s[100000];
    int c[26] = {0};
    int main(){
        fgets(s,100000,stdin);
        int i=0;
        while(s[i] != '\0')
        {
            if(c[s[i]-'a'] == 0)
                c[s[i]-'a'] = i+1;
            else
                c[s[i]-'a'] = 0;
            i++;
        }
        int minPos = 100000;
        for(i=0;i<26;i++)
        {
            if(c[i] != 0)
            {
                if(c[i] < minPos)
                    minPos = c[i];
            }
        }
        if(minPos == 100000)
            cout<<"no";
        else
            cout<<s[minPos-1];
        return 0;
    }
     
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月2日
  • 已采纳回答 9月2日
  • 创建了问题 9月2日

悬赏问题

  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用