视力闪现怎么做:编程高手请进

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/26 04:05:08
#include "stdio.h"
main()
{
int *p,a[10]={1,5,6,7, 66,89,87,45,32,60};
p=&a;
swap(a,10);
for(p=a;p<=10+a;p++)
printf("sfksldj%d\n",*p);
getch();
}
void swap(int *a,int n)
{

int i,j,t;
for(i=0;i<n;i++)
for(j=1;j<n-i;j++)
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=a[j];
}
}

请问错在哪?
要用指针函数做

p=&a;是不是要改成p=a啊
a就是地址嘛

p=a;
还有for循环的时候,判断应该是p<a+10;因为声明的一个a[10]数组只有10个元素,a+9是最后一个。
swap函数你的目的是什么,看那个逻辑很有问题。如果是想排序的话,这样错了。
冒泡排序,从小到大排序:
int i,j,k,temp,a[10];
for(i=0;i<10-1;i++){
k=i;
for(j=i+1;j<10;j++)
if(a[j]<a[k])k=j;
temp=a[i];
a[i]=a[k];
a[k]=temp;
}