小弟我这个题的子函数返回值是false和true的条件是什么
我这个题的子函数返回值是false和true的条件是什么啊
题目是下面这样的,这是一个接口函数,但我写的程序false的条件编译有问题啊,该怎么写啊。
#include "OJ.h"
/*
功能: 找出字符串中第一个出现次数最多的字符
输入: char* pInputString:字符串
输出: char* pChar:出现次数最多的字符
返回: false 异常失败
true 输出成功
*/
bool FindChar(char* pInputString, char* pChar)
{
//在这里实现功能
int i=0,k,sum=1,max=0;
if(*pInputString==NULL)
return false;
for(i;*(pInputString+i)!='\0';i++)
{
for(k=i+1;*(pInputString+k)!='\0';k++)
{
if(*(pInputString+i)==*(pInputString+k))
sum++;
}
if(max<sum)
{
max=sum;
pChar=(pInputString+i);
}
sum=1;
}
// printf("%c\n",*pChar);//输出第一个出现最多的字符
return true;
}
------解决思路----------------------
------解决思路----------------------
我认为以上
可作如下修改:
题目是下面这样的,这是一个接口函数,但我写的程序false的条件编译有问题啊,该怎么写啊。
#include "OJ.h"
/*
功能: 找出字符串中第一个出现次数最多的字符
输入: char* pInputString:字符串
输出: char* pChar:出现次数最多的字符
返回: false 异常失败
true 输出成功
*/
bool FindChar(char* pInputString, char* pChar)
{
//在这里实现功能
int i=0,k,sum=1,max=0;
if(*pInputString==NULL)
return false;
for(i;*(pInputString+i)!='\0';i++)
{
for(k=i+1;*(pInputString+k)!='\0';k++)
{
if(*(pInputString+i)==*(pInputString+k))
sum++;
}
if(max<sum)
{
max=sum;
pChar=(pInputString+i);
}
sum=1;
}
// printf("%c\n",*pChar);//输出第一个出现最多的字符
return true;
}
------解决思路----------------------
bool FindChar(const char* pInputString, char* pChar)
{
if(!pInputString
------解决思路----------------------
*pInputString=='\0'
------解决思路----------------------
!pChar) return false;
int cnt[256]={0};
int mc =0;
unsigned char ch;
while((ch=*pInputString++))
if(++cnt[ch]>mc)
mc =cnt[ch];
for(int i=1;i<256;i++)
if(cnt[i]==mc) *pChar++ = (char)i;
return true;
}
------解决思路----------------------
我认为以上
for(int i=1;i<256;i++)部分不符合题目要求。
if(cnt[i]==mc) *pChar++ = (char)i;
可作如下修改:
bool FindChar(const char *pInputString, char *pChar) {
if(!pInputString
------解决思路----------------------
*pInputString=='\0'
------解决思路----------------------
!pChar)
return false;
int cnt[256] = {0};
int pos = 1, mpos = 1, mc =0;
unsigned char ch;
while(ch = *pInputString++) {
if(++cnt[ch] > mc) {
mc = cnt[ch];
mpos = pos;
}
pos++;
}
*pChar = *(pInputString + i);
return true;
}