主函数中有一个数组a[10]={10,4,7,98,-456,0,-56,78,23,-567}, 试编写函数Sort(int *p, int n),实现把数组a的所有元素从小到大排列。主函数中需要输出排列前和排列后的所有数组元素,元素之间用空格隔开。
如下:
#include <iostream>
using namespace std;
void Sort(int* p,int n)
{
int i,j,t;
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1-i;j++)
{
if(p[j]>p[j+1])
{
t = p[j];
p[j] = p[j+1];
p[j+1] = t;
}
}
}
}
int main()
{
int a[10]={10,4,7,98,-456,0,-56,78,23,-567};
int i;
cout <<"排序前:"<<endl;
for(i=0;i<10;i++)
{
if(i<9)
cout <<a[i]<<" ";
else
cout <<a[i]<<endl;
}
Sort(a,10);
cout <<"排序后:"<<endl;
for(i=0;i<10;i++)
{
if(i<9)
cout <<a[i]<<" ";
else
cout <<a[i]<<endl;
}
return 0;
}
#include <iostream>
using namespace std;
#include <stdio.h>
#define N 10
void p_sort(int* p, int n)
{
int i, j, t;
for (i = 0; i < n - 1; i++)
{
for (j = 0; j < n - i - 1; j++) {
if (*(p + j) > *(p + j + 1))
{
t = *(p + j); *(p + j) = *(p + j + 1); *(p + j + 1) = t;
}
}
}
}
void p_output(int* p, int n)
{
int i;
for (i = 0; i < n; i++)
{
printf("%d ", *(p + i));
}
}
int main()
{
int i, a[10]={10,4,7,98,-456,0,-56,78,23,-567};
p_output(a, 10);
cout<<endl;
p_sort(a, 10);
p_output(a, 10);
return 0;
}
#include <iostream>
using namespace std;
void sort(int *p,int n)
{
int i,j;
for(i=0;i<n-1;i++)
for(j=0;j<n-i-1;j++)
if(*(p+j) > *(p+j+1))
{
int t = *(p+j);
*(p+j) = *(p+j+1);
*(p+j+1) = t;
}
}
int main()
{
int a[10]={10,4,7,98,-456,0,-56,78,23,-567};
sort(a,10);
for(int i=0;i<10;i++)
cout << a[i] << " ";
}
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
有两位的指针写的很nice