我想比较两个字符, 如果char_1 == char_2,则必须打印出1:print 0 但事实并非如此,
只是第一次测试是正确的,其余的都是假的 我将附上一些测试用例及其输出
的示例我有这个代码
#include<stdio.h>
#include<string.h>
#include<ctype.h>
int check_char(char x , char y );
int check_spec_char(char x , char y);
int main ()
{
int i , x;
char k , l ;
for(i = 0 ; i < 5 ; i++)
{
scanf("%c %c" , &k, &l );
x = check_char(k , l);
printf("%i\n\n", x);
}
return 0;
}
int check_spec_char(char x , char y)
{
if(((x == 'e' || x == 'i' ) && (y == 'e' || y == 'i' )) ||
(( x == 'p' || x == 'b') && ( y == 'p' || y =='b')))
{
return 1;
} else
{
return 0 ;
}
}
int check_char(char x , char y )
{
x = tolower(x);
y = tolower(y);
if(x == y)
{
return 1 ;
}
else if (check_spec_char(x , y) == 1)
{
return 1 ;
} else {
return 0 ;
}
}
r r
1
r r
0
0
r r
0
0
Process returned 0 (0x0) execution time : 14.183 s
Press any key to continue.
答案 0 :(得分:1)
使用scanf(&#34;%c%c&#34;,&amp; k,&amp; l);或scanf(&#34;%c%c&#34;,&amp; k,&amp; l); 这将消耗存储在缓冲区中的新行。