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;
}
错误;
- # include<stdio.h>
- # include<string.h>
- int main()
- {
- int N,i,n,j;
- char s[1000];
- scanf("%d",&N);
- for(i=0;i<N;i++)
- {
- scanf("%s",s);
- n=strlen(s);
- for(i=0,j=n-1;i<j;i++,j--) 低端错误:for已经用了i 内嵌的for又用i
- {
- if(s[i]!=s[j]) {break;}
- }
- if(i>=j)
- {printf("%s",s);continue;}
- }
- return 0;
- }
- 正确
-
# 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;
}
-