大家帮我看看下面关于指针的算法错在哪里?(我知道错的很多)

来源:百度知道 编辑:UC知道 时间:2024/05/30 10:04:29
#include <iostream>
using namespace std;

void sortn(double *p[],int size)
{for(int i=1;i<size;i++)
for(int j=0;j<size-i;j++)
if(*p[j]>*p[j+1])
{double *t=p[j];p[j]=p[j+1];p[j+1]=t;}
}

int main(void)
{const N=100;
double a[N];
int n;
cout<<"请输入需要排序的数的个数:";
cin>>n;
cout<<"请输入需要排序的数:";
for(int i=0;i<n;i++) cin>>a[i];
for(int j=0;j<n;j++) double *p[j]=&a[j];
sortn(double *p[j],n);
cout<<"顺序为:";
for(int k=0;k<n;k++) cout<<*p[k];
return 0;
}

指针哪有那么用的啊:

#include <iostream>
using namespace std;

void sortn(double p[],int size)
{
for(int i=1;i<size;i++)
for(int j=0;j<size-i;j++)
if(p[j]>p[j+1])
{
double t=p[j];p[j]=p[j+1];p[j+1]=t;}
}

int main(void)
{
const N=100;
double a[N];
int n;

cout<<"请输入需要排序的数的个数:";
cin>>n;

double *p = new double[n];

cout<<"请输入需要排序的数:";

for(int i=0;i<n;i++) cin>>a[i];
for(int j=0;j<n;j++) p[j]=a[j];
sortn(p,n);
cout<<"顺序为:";
for(int k=0;k<n;k++) cout<<p[k];
return 0;
}