m0_61059872 2022-05-07 14:32 采纳率: 66.7%
浏览 2009
已结题

这个代码要怎么改,一运行就是expected unqualified-id before '{' token。这个错误要怎么修改啊

请帮忙看看,谢谢
#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;

}

  • 写回答

4条回答 默认 最新

  • 柒号华仔 2022年度博客之星评选前沿技术领域TOP 1 2022-05-07 15:15
    关注

    你这代码错的地方比较多,记得编码要注意编码规范,可以避免许多不必要的错误,修正后代码如下(看在辛苦帮改的份上,记得给个采纳):

    #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';
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月7日
  • 已采纳回答 5月7日
  • 创建了问题 5月7日

悬赏问题

  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 Macbookpro 连接热点正常上网,连接不了Wi-Fi。
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 linux驱动,linux应用,多线程
  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题