c++中指针问题

来源:百度知道 编辑:UC知道 时间:2024/05/31 11:04:11
#include <iostream.h>
void main()
{
int a[10],b,c;
cout<<"请输入10个数字,程序会按从小到大排列:"<<endl;
for(int i=0;i<=9;i++)
cin>>a[i];
for(int j=0;j<i;j++)
{
if(a[j]>a[i])
{int *p=a;
b=*(p+j);
*(p+i)=*(p+j);
*(p+i)=b;
}
}
for (c=0;c<=9;c++)
cout<<a[c]<<" ";
}

自己写的排序,不能交换,高手赐教,应该是指针的地方有问题

#include <iostream.h>
void main()
{
int a[10],b,c;
int *p;
int j;
cout<<"请输入10个数字,程序会按从小到大排列:"<<endl;
for(int i=0;i<=9;i++)
cin>>a[i];
for(i=0;i<9;i++)
for(j=i+1;j<10;j++)
if(a[i]>a[j])
{
p=a;
b=*(p+i);
*(p+i)=*(p+j);
*(p+j)=b;
}
for (c=0;c<=9;c++)
cout<<a[c]<<" ";
}

你int *p=a; 应该是int p=a; 是把数组a的首地址给p,
for(int i=0;i<=9;i++)
cin>>a[i];
在这应该有for循环,上面的for在分号那里已经结束啦,
for(int j=0;j<i;j++)