请各位帮我看下哪里错了.#include<stdio.h>int qianzhui(char a[],char b[]){int i,m,n;scanf("%s%s",a,b); m=sizeof(a)/sizeof(int); n=sizeof(b)/sizeof(int);for(i=0;i<n;i++){if(a[i]!=b[i])return -1;}return 1;}int

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/16 21:41:23

请各位帮我看下哪里错了.#include<stdio.h>int qianzhui(char a[],char b[]){int i,m,n;scanf("%s%s",a,b); m=sizeof(a)/sizeof(int); n=sizeof(b)/sizeof(int);for(i=0;i<n;i++){if(a[i]!=b[i])return -1;}return 1;}int
请各位帮我看下哪里错了.

#include<stdio.h>

int qianzhui(char a[],char b[])

{

int i,m,n;

scanf("%s%s",a,b);

    m=sizeof(a)/sizeof(int);

    n=sizeof(b)/sizeof(int);

for(i=0;i<n;i++)

{

if(a[i]!=b[i])

return -1;

}return 1;

}

int houzhui(char a[],char b[])

{

int i,m,n;

scanf("%s%s",a,b);

    m=sizeof(a)/sizeof(int);

    n=sizeof(b)/sizeof(int);  

for(i=n-1;i>=0;i--)

{

if(a[i]!=b[i])

return -1;

}return 1;

}

int main()

{

char a[20],b[20];

int n;

scanf("%d",&n);

while(n)

{

if(qianzhui(a,b)==1&&houzhui(a,b)==-1) printf("prefix\n");

   if(houzhui(a,b)==1&&qianzhui(a,b)==-1) printf("suffix\n");

if(qianzhui(a,b)==-1&&houzhui(a,b)==-1) printf("neither\n");

if(qianzhui(a,b)==1&&houzhui(a,b)==1)printf("both\n");

n--;

}

return 0;

}


请各位帮我看下哪里错了.#include<stdio.h>int qianzhui(char a[],char b[]){int i,m,n;scanf("%s%s",a,b); m=sizeof(a)/sizeof(int); n=sizeof(b)/sizeof(int);for(i=0;i<n;i++){if(a[i]!=b[i])return -1;}return 1;}int
这个题我上午好像给过一个解法.
你函数里面的sizeof(a)这种用法不对:
qianzhui、houzhui函数的参数实际是一个字符指针,它的大小是固定的,32位环境下编译是4个字节.
另外一组数据调用qianzhui和houzhui函数相当于读入了两组数据.