#C语言#将10个数按原来的顺序逆序排列,用指针,编写主函数。我这个错在哪里?

#include#define N 10void sort(int *p);int main(){ int i,a[N],*p; p=a; for(i=0;i<N;i++) scanf("%d",p+i); sort(a); for(i=0;i<N;i++); printf("%4d",p[i]); printf("\n"); return 0;}void sort(int *p){ int *q,t; for(q=p+N-1;p<q;p++,q--) { t=*p; *p=*q; *q=t; }}

我大概看了下你这程序,大概意思是输入10个数,分别跟…*q比较后,j交换*p与*q的值,然后将*p的值输出,你头文件不是不有东西没写全,#include < 引用的库文件呢?>追问

那个文件我写了,但是还是不对 仍然输出10 而不是逆序输出

追答

for(q=p+N-1;p<q;p++,q--) 这条语句应该这样for(q=(p+(N-1));p<q;p++,q--),因为P+i=a[i]交换完之后刚好倒过来

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-05-11
哇哇哇哇
看不懂啊
相似回答