求直到两个E出现之前的字符个数,我写了下面的代码可是输出结果总是d,是哪里错了?
#include
int main()
{
int count;
char ch;
count=0
scanf("c%",ch);
while(ch[count]!='E'&&ch[count+]!='E')
{
if(ch!='E')
count++
}
printf("total%d"\n,count);
}
char ch;//应该定义为数组
char ch[beffuesize];
scanf("c%",ch);//有误
scanf("%s",ch);
细心点吧,学会调试。
int main()
{
int count;
#ifndef MAXSIZE
#define MAXSIZE 64
#endif
char ch[MAXSIZE];
count=0
scanf("c%",ch);//----------->scanf("%s" , ch);
while(ch[count]!='E'&&ch[count+]!='E')//------------>while ((ch[count] != 'E' && ch[count + 1] != 'E') && count < MAXSIZE)
{
if(ch!='E')//-------------------------->if (ch[count] != 'E')
count++;
}
printf("total%d"\n,count);
}
代码如下,测试通过(考虑了没有EE或者只输入EE两个字符时的情况)
#include<stdio.h>
int main()
{
int count = 0;
char ch[256];
printf("Please input:\n");
scanf("%s", &ch);
int i = 0;
bool flag = false;//标志位
while (ch[i] != '\0')
{
count++;
i++;
if (ch[i] == 'E' && ch[i+1] == 'E')
{
flag = true;//满足题目要求的情况,跳出循环
break;
}
}
if (!flag || (ch[0] == 'E' && ch[i + 1] == 'E'))//当输入没有EE或者输入只有EE两个字符时,count应该为0
{
count = 0;
}
printf("Total count is:%d\n",count);
return 0;
}