这是用于检查字符串是否为回文的代码(用C语言编写)。但它包含语法错误。在第二个for
循环中,它表示
预期“)”之前;
图片:
代码:
int i,j,c=0,flag=0;
char input[3];
printf("Enter a string\n");
scanf("%s",&input);
for(i=0;input[i]!='\0';i++) {
c++;
}
for(i=0;j=c-1;i<=j;j>=0;i++;j--) { // error shows in this line
if(input[i]==input[j]){
flag=1;
break;
}
}
if(flag==1){
puts("character is a palindrome");
}
else
{
puts("character is not a palindrome");
}
答案 0 :(得分:3)
1)scanf("%s",input)
而非scanf("%s",&input)
input
保存数组的地址。 &input
传递input
的地址。
2)for
循环的语法是:
for ( init; condition; increment ) {
//code
}
因此for
循环应为:
for(i=0,j=c-1;i<=j && j>=0;i++,j--)
答案 1 :(得分:1)
这句话:
for(i=0;j=c-1;i<=j;j>=0;i++;j--) {
有6个部分,但for()
语句只允许3个部分。
推荐:
for(i=0, j=c-1; i<=j, j>=0; i++, j--) {
请注意正确使用逗号分隔语句的三个部分中的表达式。
代码还存在其他问题,但上面将介绍如何使用已发布的代码进行编译