69,371
社区成员
发帖
与我相关
我的任务
分享
// 最大字符串 问题 用枚举来解决
# include<stdio.h>
#include<string.h>
#include<conio.h>
int main()
{
char *pat = "vccc";
char str[12] = "aavccabbaab";
int i,j, count,max = 0,start = 0,i_num;
int n = strlen(pat),m = strlen(str);
for(max = 0,i = 0; i < n; i ++)
{
for(j = 0,count =1,i_num = 0; j < m; j ++)//count 用来存储最大字符串的字符串数
{
if(pat[i+i_num++] == str[j])
count ++;
else //还是要继续 去判断 而不是直接退出
i_num = 0;
}
if(max < count)
max = count,start = i;//start 记录最大子串的初始顺序
}
printf("%d",max);
for(i =start,j = 0;j < max; j ++)
printf("%c",pat[i+j]);
getch();
return 0;
}
#include <stdio.h>
#include <string.h>
#define MAX 100
int len(char *t){
int l = 0 ;
char *s = t;
char ch = *s;
while(*s){
if (ch <= *s)
{
l++;
ch = *s;
}
s++;
}
return l;
}
void main(){
char array[MAX];
int length;
gets(array);
char *p = array, *q = p+1;
length = len(p);
while(*p && *q)
{
if (*p > *q && len(p) < len(q) )
{
while(*p > *q)
p--;
p++;
if (len(p) < len(q))
length = length + len(q) - len(p);
}
p = q;
q++;
}
printf("%d\n", length);
}
while(1) {
scanf("%s",&s[i++]);
if((c=getchar())=='\n')
break;
}
//和下面的效果是一样的
while(1) {
scanf("%s",s);
if((c=getchar())=='\n')
break;
}
while(1) {
scanf("%s",&s[i++]);
if((c=getchar())=='\n')
break;
}
while(1) {
scanf("%s",s);
if((c=getchar())=='\n')
break;
}