6.2

scanf输入字符串 不需要地址符   输入字符 需要

正确:

#include<stdio.h>
#include<string.h>

int main()
{
int N,i,j,n,m;
scanf("%d",&N);
char a[1000];
for(i=0;i<N;i++)

{

scanf("%s",a);

j=strlen(a);
for(n=1;n<=j/2;n++)

{

if(a[j-n]!=a[-1+n]) break;}
if(n==j/2+1) { printf("%s ",a);

}

}

return 0;
}

错误;

    1.               # include<stdio.h>    
    2. # include<string.h>    
    3. int main()    
    4. {    
    5.   int N,i,n,j;
    6. char s[1000];    
    7.   scanf("%d",&N);        
    8.   for(i=0;i<N;i++)    
    9.     {    
    10.                  scanf("%s",s);  
    11.                  n=strlen(s);    
    12.          for(i=0,j=n-1;i<j;i++,j--)      低端错误:for已经用了i 内嵌的for又用i
    13.             {    
    14.                if(s[i]!=s[j]) {break;}    
    15.                    
    16.             }    
    17.        if(i>=j)    
    18.           {printf("%s",s);continue;}    
    19.       
    20.     }    
    21.     return 0;    
    22. }     
    23. 正确
      1. # include<stdio.h>
        # include<string.h>
        int main()
        {
        int N,i,n,j,m;
        char s[1000];  //如何定义字符数组   字符数组s【0】只存放一个字符
        scanf("%d",&N);
        for(i=0;i<N;i++)
        {
        scanf("%s",s);
        n=strlen(s);     //利用strlen求字符串s 的长度  (不含) 是数字
        for(m=0,j=n-1;m<j;m++,j--)    //从s【0】和s【n-1】开始比较
        {
        if(s[m]!=s[j]) {break;}     //之所以要n-1  比如s【】存放五个字符  那么n=5  可最大是s【4】

        }
        if(m>=j)
        {printf("%s",s);continue;}

        }
        return 0;
        }

原文地址:https://www.cnblogs.com/wshyj/p/5998003.html