用指针排数字的大小 求助为何错了
#include<stdio.h>int main()
{
int n;
printf("请输入要输入数字的个数:\n");
scanf("%d",&n);
printf("请输入n个数:\n");
int i,*p,temp,a;
p=a;
for(i=0;i<=n;i++)
scanf("%d",p++);
printf("按从小到大输出结果:\n");
for(i=0;i<=n;i++,p++)
{
if(p>(p+1))
{
temp=*p;
*p=*(p+1);
*(p+1)=temp;
}
printf("%d",*p);
}
return 0;
}
-----------------------------------------------
程序在编译的时候没有错,但是在输入后没有结果产生
--------------------------------------------------
用的Dev c++
------------------------------------------------
请问这是哪里的问题呢{:10_254:} if(p>(p+1))
判断的问题,p 和 p+1 是地址,不是里边的值,后一个地址一直比前一个地址大,所以这句永远不会成立,应该前面加上间接取址运算符,*p > *(p+1)
页:
[1]