keywords @ 2021-08-18 07:47:57
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
char a[10001];
int main()
{
int s,f=0,c;
gets(a);c=strlen(a);
for(int i=0;i<c;i++)
{
s=a[i];
for(int j=i+1;j<c;j++)
{
if(s==a[j])
{
a[j]='0';a[i]='0';
}
}
}
for(int i=0;i<c;i++)
{
if(a[i]!='0')
{
cout<<a[i];
f=1;
break;
}
}
if(f==0)
cout<<"no";
return 0;
}
by CarryQwQ @ 2021-08-18 08:01:18
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
string a;
int main()
{
int s,f=0,c;
cin >> a;c=a.length();
for(int i=0;i<c;i++)
{
s=a[i];
for(int j=i+1;j<c;j++)
{
if(s==a[j])
{
a[j]='0';a[i]='0';
}
}
}
for(int i=0;i<c;i++)
{
if(a[i]!='0')
{
cout<<a[i];
f=1;
break;
}
}
if(f==0)
cout<<"no";
return 0;
}
by 信守天下 @ 2021-08-18 08:01:34
可能是 gets
的锅?
by CarryQwQ @ 2021-08-18 08:02:01
@keywords 把字符数组改成字符串就好了。
其实我也不明白为什么
by 信守天下 @ 2021-08-18 08:03:14
@keywords 应该是无解输出 no
,但是因为 gets
读了一个换行符,所以输出了一个换行。
by 信守天下 @ 2021-08-18 08:05:22
@CarryQwQ 不用改字符串,用 scanf
读入就行了
by CarryQwQ @ 2021-08-18 08:05:33
@keywords 我又突然明白了,的确是 gets
的锅,因为 gets
可以读入空格,把 gets
换成 scanf
试试。
by CarryQwQ @ 2021-08-18 08:07:57
@信守天下 是的。
by 信守天下 @ 2021-08-18 08:12:12
@keywords 建议以后不要使用 gets
函数,会多很多错误,字符数组用 scanf
,string
用 cin
by ImposterAnYu @ 2021-08-18 08:30:54
@keywords
不要用gets
,因为gets
会读入换行符和空格,而且gets
容易炸。
by keywords @ 2021-08-23 21:17:22
@ImopsterAnYu 十分感谢!