带你学C带你飞19讲求助
#include<stdio.h>#include<string.h>
int main()
{
char ch,ch1,ch2;
int count,i,j,a=0,b=0;
int flag = 0;
printf("请输入英文文本:");
scanf("%s",&ch);
count = strlen(ch);//获取输入字符个数
for(i = 0;i < count;i++){
for(j = 0;j < strlen(ch1);j++){
if(ch == ch1)
flag = 1;
}
if(flag == 0){
ch1 = ch;
}
}//找出不同的字符
for(i = 0;i < strlen(ch1) ;i++){
a = 0;
for(j = 0;j < strlen(ch);j++){
if(ch1 == ch){
a++;
}
}
if(a > b){
b = a;
ch2 = ch1;
}
}//挨个计算出现次数,如果后者比前者大,就覆盖掉
printf("你总共输入了%d个字符,其中不同的字符个数有%d个\n",count,strlen(ch1));
printf("它们是:%s",ch1);
printf("出现次数最多的字符是%c,它总共出现了%d次",ch2,b);
return 0;
}
为啥无法执行?连打印输入的字符串个数都不行 空间初始化一下就好了
char ch,ch1={'\0'},ch2; wp231957 发表于 2021-8-24 15:52
空间初始化一下就好了
char ch,ch1={'\0'},ch2;
结果还是不对,能打印但是是错误结果 Blizzard0319 发表于 2021-8-24 16:06
结果还是不对,能打印但是是错误结果
for(i = 0;i < count;i++){
for(j = 0;j < strlen(ch1);j++){
if(ch == ch1)
flag = 1;
}
if(flag == 0){
ch1 = ch;
}
flag=0;
} //把红色的代码补上试一下 #include <stdio.h>
int main(void)
{
char ch , s = {0} ;
int d = {0} , i , j , k , m ;
for(m = 0 ; (ch = getchar()) != '\n' ; m ++) {
if(ch >= 'A' && ch <= 'Z') ch += 32 ;
d ++ ;
}
for(i = j = k = 0 ; i < 128 ; i ++) {
if(d) {
s = i ;
s = 0 ;
if(d > k) k = d ;
}
}
printf("你总共输入了%d个字符,其中不同的字符个数有%d个\n" , m , j) ;
printf("它们是:%s\n" , s) ;
printf("出现次数最多的字符是") ;
for(i = 0 ; i < 128 ; i ++) if(d == k) printf("%c" , i) ;
printf(",它总共出现了%d次\n" , k) ;
} wp231957 发表于 2021-8-24 16:13
for(i = 0;i < count;i++){
for(j = 0;j < strlen(ch1);j++){
...
可以运行,但是那个count的结果是错误的,后面的如果建立在错误的count上是正确的
运行结果如下:
请输入英文文本:Wow!!!Look at that!!!So many girls study at FishC.com!!!
你总共输入了10个字符,其中不同的字符个数有6个
它们是:Wow!Lk出现次数最多的字符是o,它总共出现了3次 Blizzard0319 发表于 2021-8-25 11:35
可以运行,但是那个count的结果是错误的,后面的如果建立在错误的count上是正确的
运行结果如下:
请输 ...
因为你输入中有空格,而scanf.遇到空格则停止
想统计空格还需继续修改代码
页:
[1]