中点为对称点,交换数字:有什么错误!此种算法如何修改?
main()
{int a[10]={3,7,9,11,0,6,7,5,4,2},*p,*q,ch;
for(p=q=a[0];*q;q++);
q--;
while(p<q){ch=*p;*p=*q;*q=ch;p++;p--;}
printf("a=%d\n",a);
}
晕,请把题目问得更加具体点咯,我不大看得明白~谢谢
要说错误嘛~你定义了两个指针,却没给他们赋任何的地址,就在for中使用了,这个明显是个错误
我把 a[0]改成 a 呢?
这是一道例题不过原来换的是字符!
可以是可以,但是你这道题目到底是想让你干什么呢?把题目说明白点呀
中点为对称点,交换数字 哪个是中点,0吗? 交换数字,哪个和哪个交换?
q;*q=ch;p++;p--;}--->q;*q=ch;p++;q--;}
{char a[]="1234567890",*p,*q,ch;
for(p=q=a;*q;q++);//int 不能这样用 ,
q--; printf("\na=%s\n",a); while(p<q){ch=*p;*p=*q;*q=ch;p++;q--;}
printf("\na=%s\n",a); getch(); }
哦,看了knocker的程序才明白。你原来想求的是这个啊,就是把0前面的和0后面的交换位置吧~晕死,这个和中点有什么关系啊~害我以为是对称点呢
字符按照 knocker的算法就对啦