第1个回答 2010-11-26
在main函数中P没有被赋值,在fun函数中的P是不会被main函数承认的。而且最好将所有变量定义放在函数开头
第2个回答 2010-11-27
#include<stdio.h>
#include<stdlib.h>
void fun(int *,int);
int main(void)
{
int n,i;
int *p=NULL;
printf("请输入整数个数:\n");
scanf("%d",&n);
p=(int*)malloc(n*sizeof(int));
printf("请输入各个整数:\n");
for(i=0;i<n;i++)
scanf("%d",p+i);
fun(p,n);
for(i=0;i<n;i++)
printf("%d\n",*(p+i));
free(p);
return 0;
}
void fun(int *p,int n)
{
int i,j,t;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(*(p+i)>*(p+j))
{
t=*(p+i);
*(p+i)=*(p+j);
*(p+j)=t;
}
printf("排序后为:\n");
}
第3个回答 2012-06-06
# include <stdio.h>
# define L 100
void sort(int *num[], int n);
int main(int argc, char *argv[])
{
int a[L];
int *num[L];
int n, i, **p=num;
scanf("%d", &n);
for (i=0; i<n; i++)
{
scanf("%d", &a[i]);
num[i]=&a[i];
}
sort(num, n);
for (i=0; i<n; i++)
printf("%d ", **(p+i));
}
void sort(int *num[], int n)
{
int *t;
int i, j, k;
for (i=0; i<n; i++)
{
for (j=i+1, k=i; j<n; j++)
{
if (*num[k]<*num[j]) k=j;
}
if (k!=i)
{
t=num[i];
num[i]=num[k];
num[k]=t;
}
}
}
第4个回答 2010-11-26
int **p;
怎么都是“**”声明指针是 int *p;