#include<stdio.h>
int main()
{
int num=1,i,j;
char ch[100];
gets(ch);
for(i=1;ch[i]!='\0';i++)
{
if(ch[i]<='z'&& ch[i]>=' ')
{
num=num+1;
for(j=0;j<i;j++)
{
if(ch[i]==ch[j])
{
num=num-1;
}
}
}
}
printf("%d\n",num);
return 0;
}

这个问题为什么不正确呢? 求教
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- threenewbee 2018-11-28 14:08关注
如果问题得到解决,请点我回答左上角的采纳,谢谢
是有多少不同的字符,相同的算1个,而不是有多少字符。
#include<stdio.h> int main() { int arr[128]; for (int i = 0; i < 128; i++) { arr[i] = 0; } char ch; while ((ch = getchar()) != '\n') arr[ch] = 1; int cnt = 0; for (int i = 0; i < 128; i++) if (arr[i]) cnt++; printf("%d\n", cnt); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报