C语言的几道编程题。。考试时间快截止了。。。感觉好难实在无法了。。
答案:4 悬赏:70 手机版
解决时间 2021-04-28 22:56
- 提问者网友:人傍凄凉立暮秋
- 2021-04-28 14:31
C语言的几道编程题。。考试时间快截止了。。。感觉好难实在无法了。。
最佳答案
- 五星知识达人网友:末日狂欢
- 2021-04-28 15:27
#include
#include
#include
#define MAXCHAR 5000 //最长处理5000个字符
char c[MAXCHAR], *a[MAXCHAR];
int comlen( char *p, char *q )
{
int i = 0;
while( *p && (*p++ == *q++) )
++i;
return i;
}
int pstrcmp( const void *p1, const void *p2 )
{
return strcmp( *(char* const *)p1, *(char* const*)p2 );
}
int main( )
{
char ch;
int n=0;
int i, temp;
int maxlen=0, maxi=0;
#include
#include
#define MAXCHAR 5000 //最长处理5000个字符
char c[MAXCHAR], *a[MAXCHAR];
int comlen( char *p, char *q )
{
int i = 0;
while( *p && (*p++ == *q++) )
++i;
return i;
}
int pstrcmp( const void *p1, const void *p2 )
{
return strcmp( *(char* const *)p1, *(char* const*)p2 );
}
int main( )
{
char ch;
int n=0;
int i, temp;
int maxlen=0, maxi=0;
//printf("Please input your string:
");
while( (ch=getchar())!='
' ) {
a[n]=&c[n];
c[n++]=ch;
}
c[n]='';
qsort( a, n, sizeof(char*), pstrcmp );
for(i=0; i
temp=comlen( a[i], a[i+1] );
if( temp>maxlen )
{
maxlen=temp;
maxi=i;
}
}
if(maxi==0)
printf("No output");
printf("%.*s
",maxlen, a[maxi]); //system("PAUSE");
return 0;
}
全部回答
- 1楼网友:人间朝暮
- 2021-04-28 18:20
截取后IF判断啊,蠢……
- 2楼网友:胯下狙击手
- 2021-04-28 18:07
考试时间过了没有,没过我给你做下追问额 似乎是不用了。。。楼下那哥们给的程序能用。。
- 3楼网友:不想翻身的咸鱼
- 2021-04-28 16:57
#include
#define BUF_MAX 1000
int idx; //子串起始位置
int len;//子串长度
void str_search(const char *str)
{
int i=0;
while(str[i]!='') ++i;
int strlen=i;
for(i=strlen/2;i>0;--i)
{
int zeronum=0;
int j;
for(j=i;j {
if (str[j]==str[j-i])
{
++zeronum;
if (zeronum==i)
{
idx=j-2*i+1;
len=i;
return;
}
}
else
{
zeronum=0;
}
}
}
}
int main()
{
char str[BUF_MAX];
scanf("%s",str);
str_search(str);
int i;
for(i = 0; i < len; ++i)
putchar(str[idx + i]);
putchar(' ');
}
#define BUF_MAX 1000
int idx; //子串起始位置
int len;//子串长度
void str_search(const char *str)
{
int i=0;
while(str[i]!='') ++i;
int strlen=i;
for(i=strlen/2;i>0;--i)
{
int zeronum=0;
int j;
for(j=i;j
if (str[j]==str[j-i])
{
++zeronum;
if (zeronum==i)
{
idx=j-2*i+1;
len=i;
return;
}
}
else
{
zeronum=0;
}
}
}
}
int main()
{
char str[BUF_MAX];
scanf("%s",str);
str_search(str);
int i;
for(i = 0; i < len; ++i)
putchar(str[idx + i]);
putchar(' ');
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯