主题:2维指针问题
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
void swap(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+j);*(p+j)=*(p+i);*(p+i)=t;} //这里有问题
}
}
void main()
{
int num[20],i,n,*pt[20],**p;
printf("Input the n:");
scanf("%d",&n);
for(i=0;i<n;i++)pt[i]=&num[i];
p=pt;
printf("The series numbers:\n");
srand(time(NULL));
for(i=0;i<n;i++)num[i]=rand()%100;
for(i=0;i<n;i++)printf("%d ",num[i]);
printf("\n");
swap(p,n);
for(i=0;i<n;i++)printf("%d ",num[i]);
system("pause");
}
就是个简单的数字排序问题 让使用二维指针 在vc6.0中可以运行,但在输出的结果不对
难道只是交换地址还不行??求教!!
#include "stdlib.h"
#include "time.h"
void swap(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+j);*(p+j)=*(p+i);*(p+i)=t;} //这里有问题
}
}
void main()
{
int num[20],i,n,*pt[20],**p;
printf("Input the n:");
scanf("%d",&n);
for(i=0;i<n;i++)pt[i]=&num[i];
p=pt;
printf("The series numbers:\n");
srand(time(NULL));
for(i=0;i<n;i++)num[i]=rand()%100;
for(i=0;i<n;i++)printf("%d ",num[i]);
printf("\n");
swap(p,n);
for(i=0;i<n;i++)printf("%d ",num[i]);
system("pause");
}
就是个简单的数字排序问题 让使用二维指针 在vc6.0中可以运行,但在输出的结果不对
难道只是交换地址还不行??求教!!