错误:在 C 程序上显示';'令牌之前预期')'以检查字符串是否为回文



我的for循环中的赋值,条件和更新不正确吗?,它显示该行上的错误

void main()
{  int i,j,n;
char a[10];
printf("ttPROGRAM TO CHECK IF A STRING IS PALINDROME OR NOT");
printf("ntt-----------------------------------------------");
printf("nEnter the string: ");
gets(a);
n=strlen(a);
for(i=0;j=n-1;i<=j;i++;j--){
if(toupper(a[i])!=toupper(a[j])){
printf("The string is not palindrome");
break;
}
}
if(i==j){
printf("nThe string %s is a palindrome",a);
}
getch();
}

你的问题是for(i=0;j=n-1;i<=j;i++;j--){行中也可能有分号!

分号分隔语句for只需要三个这样的语句。若要在同一语句中放置两个(或多个(表达式,请用逗号分隔它们,如下所示:for(i=0, j=n-1; i<=j; i++, j--){

希望这有帮助。

#include<stdio.h>
#include<string.h>
#include<ctype.h>
int main()
{
int i,j,n;
char a[10];
printf("ttPROGRAM TO CHECK IF A STRING IS PALINDROME OR NOT");
printf("ntt-----------------------------------------------");
printf("nEnter the string: ");
gets(a);
puts(a);
n=strlen(a);
for(i=0, j=n-1;i<(n-1)/2;i++, j--){
if(toupper(a[i])!=toupper(a[j])){
printf("The string is not palindrome");
break;
}
}
if(i==j || i == j-1){
printf("The string  is a palindromen");
}
return 0;
}

最新更新