㈠ 求最长公共子序列的c语言代码
???
㈡ C语言输出一行字符串中最长的单词
代码如下:
#包括< stdio, h >
# include < string。H >
Voidmain()
{
字符c[50];
Voidf(charc[50]);//没有返回值,直接用函数f打印结果。
(c);
F(c);
}
Voidf(charc[50])
{
Intlen=0,lenth=0,I,flag=0;
For(I=0;C(我)!='\0';我++)
{
如果(c[我]!='')
Len++;
If(c[I]=='')
{
If (len > lenth)
{
长度=兰;
国旗=i-lenth;//当有一个新的最长的字符串时,使用flag记录字符串开始下标
}
Len=0;
}
}
If (len > lenth)
{
长度=兰;
国旗=i-lenth;//以同样的方式
}
Printf("最长的子串是%d字符,子串是:",lenth);//打印子串的长度
For (I = flag;I < flag + lenth;i++)//将子字符串从flag输出到flag + lenth-1
Printf("%c",[I]c);
Printf("\n");//换行
}
(2)最长c语言代码扩展阅读:
1.返回意味着从被调用的函数继续执行到主函数。Return可以伴随一个返回值,返回值可以是常量、变量或表达式。
2.操作:结束正在运行的函数并返回该函数的值。
3.返回值:
返回值可以是各种数据类型,例如:int、float、ouble、char、a[](数组)、*a(指针)、
结构或类(c++)返回类型指定返回后要添加的金额的类型,如果返回类型被声明为void,则不需要返回值。PublicstaticvoidMain()//programentry只能被声明为void和int的返回
{
//没有返回值
}
公共静态空隙(mm)
{
返回;//在某些情况下,在一个voidmethod中,需要跳出来,你可以直接使用return,不能在后面添加任何数量
}
公共静态intcc()
{
321的回归;因为返回类型声明为int,所以返回一个整数
}
公共静态字符串MSMSM()
{
返回“asdfhasjghdg”;因为返回类型被声明为string,所以返回一个string
}
㈢ C语言输出最长字符串 输出不完整 帮我看看代码
把while(scanf("%s",&s) != 0 )中的scanf("%s",&s)改成gets(s)试试!scanf("%s",&s)这个函数是不认空格的,一旦有空格它就认为输入结束了,把空格后的字符当另一次输入,所以最后只剩下最后输入一个字符串……
㈣ C语言 求最长公共子串的代码,其中有一句j+=length1;不太明白作用是什么,没有这句有什么影响,望解答
这个算法是错误的,代码中有一些错误,我修改如下:
j+=length的原始意图是想让s[i]==t[j]满足的情况下,将t字符串移动。
但为什么能一下移动length这么长?这样虽然程序不会死循环,但结果不对。
由于一下子移动太多,可能会漏掉真正的最长公共子串,比如下面这个例子:
#include<stdio.h>
#include<string.h>
voidMaxComStr_youError(chars[],chart[],charc[])
{
intindex=0,length=0,i,j,k,length1;
i=0;
while(s[i]!='