#include
#include
int main(){
int i,*pi,l,*pl,mark,*pmark;
pi=&i;
pl=&l;
pmark=&mark;
char str[100000],*pstr;
pstr=str;
while((scanf("%s",pstr)!=EOF)&&strcmp(str,"2013")!=0){
pl=strlen(pstr);
mark=1;
for(*pi=0;*pi<(l/2);*pi++){
if((pstr+i)!=*(pstr+(*pl-*pi-1))){
mark=0;
break;
}
}
if(mark){
printf("YES\n");
}
else{
printf("NO\n");
}
}
return 0;
}
#include
#include
#include
int main() {
int i,*pi,l,*pl,mark,*pmark;
pi=&i;
pl=&l;
pmark=&mark;
char str[100000],*pstr;
pstr=str;
while((scanf("%s",pstr)!=EOF)&&strcmp(str,"2013")!=0) {
*pl=(int)strlen(pstr);
mark=1;
for(*pi=0; *pi<(l/2); *pi++) {
int temp = (*pl-*pi-1);
if((pstr+i)!=(pstr+temp)) {
mark=0;
break;
}
}
if(mark) {
printf("YES\n");
} else {
printf("NO\n");
}
}
return 0;
}//这样可以运行,但是逻辑还需要修改
#include //头文件
//#include
int main() {
int i, *pi, l, *pl, mark, *pmark;
pi = &i;
pl = &l;
pmark = &mark;
char str[100000], *pstr;
pstr = str;
while ((scanf("%s", pstr) != EOF) && strcmp(str, "2013") != 0) { //strcmp 的括号用了全角符号
l = strlen(pstr); //pl=strlen(pstr); pl= 修改为 l=
mark = 1;
for (*pi = 0; *pi < (l / 2); (*pi)++) { //for循环的条件修改 pi++ 修改为 *(pi)++
if (*(pstr + i) != *(pstr + (*pl - *pi - 1))) { //(pstr + i)前要加个指针取值符号 *
mark = 0;
break;
}
}
if (mark) {
printf("YES\n");
}
else {
printf("NO\n");
}
}
return 0;
}
#include
#include
#include
int main() {
int i,*pi,l,*pl,mark,*pmark;
i=0;l=0;
pi=&i;
pl=&l;
pmark=&mark;
char str[100000],*pstr;
pstr=str;
while((scanf("%s",pstr)!=EOF)&&strcmp(str,"2013")!=0) {
//输入的时候由于使用指针,不会修改str,所以运行个两三次会出错,但第一次是对的
*pl=(int)strlen(pstr);
mark=l;
for(*pi=0; *pi<(*pl)/2; *pi++) {
int temp = (*pl-*pi-1);
// printf("%d %d %d\n",*pi,*pl,temp);
// printf("%c %c\n",*pstr+*pi,*pstr+temp);
if(*(pstr+*pi)!=*(pstr+temp)) {
mark=0;
break;
}
}
if(mark) {
printf("YES\n");
} else {
printf("NO\n");
}
}
return 0;
}
主要是指针的用法不对,而且pi和pl完全不需要,可以直接用i和l来代替
①除以零
②数组越界:int a[3]; a[10000000]=10;
③指针越界:int * p; p=(int *)malloc(5 * sizeof(int)); *(p+1000000)=10;
④使用已经释放的空间:int * p; p=(int *)malloc(5 * sizeof(int));free(p); *p=10;
⑤数组开得太大,超出了栈的范围,造成栈溢出:int a[100000000];
对于这个问题,我个人认为是一些变量比如i,l都没有初始化值,很容易出现地址越界的情况,请将这些值初始化。