#include<stdio.h> #include<string.h> int main() { char a[100000]; gets(a); int i,j; char out='\0'; int l = strlen(a); for(i=0;i<l;i++){ int sum = 0; for(j=0;j<l;j++){ if(a[i]==a[j]){ sum += 1; } } if(sum ==1){ out = a[i]; printf("%c",out); break; } } if(out=='\0'){ //如果out值被改变表示找到,否则打印no printf("no"); } return 0; }
思路是好的,如果要是输入的是:aabbcc,这时应该输出no。所以这个代码不完整。我改进了一下: #include<stdio.h> #include<string.h> int main() { char str[100000],out; int i,j,sum; scanf("%s",&str); int len=strlen(str); for(i=0;i<len;i++) { sum=0; for(j=0;j<len;j++) { if(str[i]==str[j]) sum++; } if(sum==1) { out=str[i]; printf("%c",out); return; } } printf("no"); return 0; } 在devc++上运行没问题,但是在这个平台上是错误的,不知道为啥,有知道的还请留言。