在我的代码中,我在if语句中有问题。我觉得代码是正确的。这检索第一个字符数组的ASCII值。但是,ASCII值第二个字符阵列保留0。帮助我解决这个问题。
#include<stdio.h>
#include<string.h>
void main()
{
char team1[50],team2[50];
int testcase,rounds,i=0,j,l,count=0,ascii1,ascii2;
scanf("%d",&testcase);
while(i<testcase)
{
scanf("%d",&rounds);
scanf("%s",team2);
scanf("%s",team1);
printf("team2..%sn",team2);
for(l=0;l<rounds;l++)
{
for(j=l;j<rounds;j++); //<--- Don't do this...
{
ascii1=team1[l];
ascii2=team2[j];
if(ascii1==ascii2)
{
count+=1;
}
printf("count..%dn",count);
}
}
printf("%dn",count);
i++;
}
}
应显示相同字符的数量。对于Exmaple:输入:
1
4
asdf
qwsa
输出:
2
在第二个for
之后,您有一个冗余(错误的(半隆(;
(,使其在空块上循环。删除它,您应该可以。
for(l=0;l<rounds;l++)
{
ascii1=team1[l];
for(j=l;j<rounds;j++)
{
ascii2=team2[j];
if(ascii1==ascii2)
{
count+=1;
}
}
}
这仅适用于您的输入((14ASDFQWSA(如果您要更改输入,则代码也会像输入一样更改ASDF和QSA