求诸位数之和c语言,求诸位大牛解答

求各位大牛解答

#include

#include

bool find(char a[2000], char b[2000])

{

int i,j,k;

bool found=false;

for(i=0; a[i]!=0; i++)

{

for(j=i, k=0; a[j]==b[k] && a[j]!=0; j++, k++);

if(b[k]==0)

{

found=true;

break;

}

}

return found;

}

int main()

{

char a[2000];

char b[2000];

int n,m;

while(scanf("%d",&n)!=EOF)

{

int i,j;

for(i=0;i

{

scanf("%s",a[i]);

}

scanf("%d",&m);

for(i=0;i

{

scanf("%s",b[i]);

}

for(j=0;j

{

int sum=0;

for(i=0;i

{

if(find(a[i],b[j]))sum++;

}

printf("%d\n",sum);

}

}

return 0;

}

我要打的是这样一道题  首先输入一个正整数P(1 ≤ P ≤10000),代表了所有产品的总数,接下来是P行字符串(军事小写,长度不超过20个字符)。然后输入一个正整数Q(1 ≤ Q ≤100000),Q代表了记得的关键字符串的个数,接下来是Q行关键字字符串。

给出这样的错误

cannot convert parameter 1 from 'char' to 'char []'

表示刚好没学指针那节

------解决思路----------------------

//首先输入一个正整数P(1 ≤ P ≤10000),代表了所有产品的总数,接下来是P行字符串(均是小写,长度不超过20个字符)。

//然后输入一个正整数Q(1 ≤ Q ≤100000),Q代表了记得的关键字符串的个数,接下来是Q行关键字字符串。

//输出Q行,每行对应第Q个关键字字符串在所有产品中出现的次数。

#include 

bool find(char *a, char *b) {

int i,j,k;

bool found=false;

for (i=0; a[i]!=0; i++) {

for (j=i, k=0; a[j]==b[k] && a[j]!=0; j++, k++);

if (b[k]==0) {

found=true;

break;

}

}

return found;

}

int main() {

static char a[10000][21];

static char b[100000][21];

int P,Q;

int i,j;

int sum;

scanf("%d",&P);

for (i=0;i

scanf("%20s",a[i]);

}

scanf("%d",&Q);

for (j=0;j

scanf("%20s",b[j]);

}

for (j=0;j

sum=0;

for (i=0;i

if (find(a[i],b[j])) sum++;

}

printf("%d\n",sum);

}

return 0;

}

//输入:

//3

//abc

//abcdef

//xyz

//4

//abc

//xyz

//def

//lmn

//输出:

//2

//1

//1

//0

//

------解决思路----------------------

引用:Quote: 引用:scanf("%s",a[i]);    改为:      scanf("%s",a);

scanf("%s",b[i]);    改为:      scanf("%s",b);

仅修改了一部分。这样改了以后能运行,但是没有达到题目效果啊

楼上  赵4老师 已给出代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值