输入一个n位数(n>=3),找出其中3个连续的数字构成的数中最大的那一个。例如,输入26895,则三个连续的数字构成的数是:268、689、895,其中最大的是895。
#include <stdio.h>
void find(const char *s){
int i,flag=0;
const char *p=s,*max=s;//用max记录最大值的首地址
p++;
while(*(p+2)!='\0'){
if(*max<*p) //得到当前第一位的最大值
max=p;
else if(*max==*p){
for(i=0;i<3;i++){
if(*(max+i)<*(p+i)){//进行比较
flag=1;
break;
}
}
if(flag!=0)
max=p;//max为最大三位数的首地址
}
p++;
}
for (i=0;i<3;i++)
printf("%c",*(max+i));
}
int main(){
char s[666];
printf("请输入一串数字:\n");//输入一串数字
scanf("%s",s);
find(s);//找到最大值
return 0;
}
如有错误 欢迎指正