我的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;
}