请各位帮我看下哪里错了.#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函数相当于读入了两组数据.