当前位置: 代码迷 >> C语言 >> 关于指针的问题
  详细解决方案

关于指针的问题

热度:155   发布时间:2006-11-28 18:36:43.0
#include<stdio.h>
int main()
{
float a[10],*p,t;////t 为float
int max_id,i,j;
p=a;
printf("输入10个数字\n");
for(p=a;p-a<10;p++)
scanf("%f",p);
p=a;///////////////
for(i=0;i<9;i++)
{
max_id=i;
for(j=i+1;j<10;j++)
if(*(p+max_id)<*(p+j))
max_id=j;
t=*(p+i);///////////
*(p+i)=*(p+max_id);//////////
*(p+max_id)=t;/////////
}
for(p=a;p-a<10;p++)
printf("%12f",*p);
return 0;
}
改成这个样子,注释的是有修改的
----------------解决方案--------------------------------------------------------
谢谢楼上解决了谢谢各位大虾!!!
因为现在学指针老师要求必须用指针作!!!
现在不是很明白指针到底干什么用???怎么就是替代变量的阿????
----------------解决方案--------------------------------------------------------
t=*(p+i);///////////
*(p+i)=*(p+max_id);//////////
*(p+max_id)=t;/////////
}
请问大虾!!!
t=*(p+i);///////////
*(p+i)=*(p+j);//////////
*(p+j)=t;/////////
}
这样为什么就出错。。。。。

----------------解决方案--------------------------------------------------------
#include<stdio.h>
main()
{
float a[10],*p;
int max_id,i,j,t;
p=a;
printf("输入10个数字\n");
for(p=a;p-a<10;p++)
scanf("%f",p);
for(i=0;i<9;i++)
{max_id=i;
for(j=i+1;j<10;j++)
if(*(p+max_id)>*(p+j))
max_id=j;

t=*(p+i);
*(p+i)=*(p+j) ;
*(p+j)=t;

}

for(p=a;p-a<10;p++)
printf("%12f",*p);}

这是我改的 好像楼上的int 和float之间的转换有问题

----------------解决方案--------------------------------------------------------

谢谢楼上的的不过运行的时候出错!!!!


----------------解决方案--------------------------------------------------------
  相关解决方案