请帮忙看看,谢谢
#include"stdio.h"
#include"string.h"
#define N 100
void DNASeglnv(char S[], char T[], char newS[]);
int main()
{
char S[N];
char T[N];
char newS[N];
char DNA_A[N],DNA_B[N];
char invDNA_A[N];
char invDNA_B[N];
char subStrA[20];
char subStrB[20];
gets(DNA_A);
gets(subStrA);
gets(DNA_B);
gets(subStrB);
}
{ 编译器提示错误:[Error] expected unqualified-id before '{' token
DNASeglnv( DNA_A, subStrA, invDNA_A);
printf("%s\n",invDNA_A);
}
{ 编译器提示错误:[Error] expected unqualified-id before '{' token
DNASeglnv(DNA_B,subStrB,invDNA_B);
printf("%s\n",invDNA_B);
return 1;
}
void DNASeglnv(char S[],char T[],char newS[]);
{ 编译器提示错误:[Error] expected unqualified-id before '{' token
int i,j,k,loc;
int lenS=strlen(S);
int lenT=strlen(T);
int *nArray=new int[lenS];
char *subS=new char(lenT+1);
int halfLenT=int(lenT/2);
nArray[0]=0;
i=0;
k=1;
while(i<=lenS-lenT)
{
for(j=0;j<lenT;j++)
subS[j]=S[i+j];
subS[lenT]="\0";
if(strcmp(T,subS)==0)
{
nArray[k++]=i+halfLenT;
i+=lenT;
}
else
i++;
}
nArray[k]=lenS;
loc=0;
while(k>=1)
{
for(i=nArray[k-1];i<nArray[k];i++)
newS[loc++]=S[i];
k--;
}
newS[loc]="\0";
delete[] nArray,subS;
}
你这代码错的地方比较多,记得编码要注意编码规范,可以避免许多不必要的错误,修正后代码如下(看在辛苦帮改的份上,记得给个采纳):
#include"string.h"
#define N 100
void DNASeglnv(char S[],char T[],char newS[]);
int main()
{
char S[N];
char T[N];
char newS[N];
char DNA_A[N],DNA_B[N];
char invDNA_A[N];
char invDNA_B[N];
char subStrA[20];
char subStrB[20];
gets(DNA_A);
gets(subStrA);
gets(DNA_B);
gets(subStrB);
DNASeglnv( DNA_A, subStrA, invDNA_A);
printf("%s\n",invDNA_A);
DNASeglnv(DNA_B,subStrB,invDNA_B);
printf("%s\n",invDNA_B);
return 1;
}
void DNASeglnv(char S[],char T[],char newS[])
{
int i,j,k,loc;
int lenS=strlen(S);
int lenT=strlen(T);
int nArray[lenS];
char subS[lenT+1];
int halfLenT=lenT/2;
nArray[0]=0;
i=0;
k=1;
while(i<=lenS-lenT)
{
for(j=0;j<lenT;j++)
subS[j]=S[i+j];
subS[lenT]='\0';
if(strcmp(T,subS)==0)
{
nArray[k++]=i+halfLenT;
i+=lenT;
}
else
i++;
}
nArray[k]=lenS;
loc=0;
while(k>=1)
{
for(i=nArray[k-1];i<nArray[k];i++)
newS[loc++]=S[i];
k--;
}
newS[loc]='\0';
}
是这个:void DNASeglnv(char S[],char T[],char newS[]);后面多加了“;”吧
看不清哪个是你的代码,哪个是提示的错误
代码放在这里面,选C或C++
#include"stdio.h"
#include"string.h"
#define N 100
void DNASeglnv(char S[], char T[], char newS[]);
int main()
{
char DNA_A[N],DNA_B[N];
char invDNA_A[N];
char invDNA_B[N];
char subStrA[20];
char subStrB[20];
gets(DNA_A);
gets(subStrA);
gets(DNA_B);
gets(subStrB);
}
DNASeglnv( DNA_A, subStrA, invDNA_A); 编译器显示错误[Error] expected constructor, destructor, or type conversion before '(' token
printf("%s\n",invDNA_A); 编译器显示错误[Error] expected constructor, destructor, or type conversion before '(' token
{
DNASeglnv(DNA_B,subStrB,invDNA_B);编译器显示错误[Error] expected constructor, destructor, or type conversion before '(' token
printf("%s\n",invDNA_B);
return 1;
}
void DNASeglnv(char S[],char T[],char newS[]);
{ 编译器显示错误[Error] expected constructor, destructor, or type conversion before '(' token
int i,j,k,loc;
int lenS=strlen(S);
int lenT=strlen(T);
int *nArray=new int[lenS];
char *subS=new char(lenT+1);
int halfLenT=int(lenT/2);
nArray[0]=0;
i=0;
k=1;
while(i<=lenS-lenT)
{
for(j=0;j<lenT;j++)
subS[j]=S[i+j];
subS[lenT]="\0";
if(strcmp(T,subS)==0)
{
nArray[k++]=i+halfLenT;
i+=lenT;
}
else
i++;
}
nArray[k]=lenS;
loc=0;
while(k>=1)
{
for(i=nArray[k-1];i<nArray[k];i++)
newS[loc++]=S[i];
k--;
}
newS[loc]="\0";
delete[] nArray,subS;
}