#include "stdafx.h"
#include<stdio.h>
const int cnt=10;
//对所要使用的函数进行声明
void input(int *arr,int n);
void output(int *arr,int n);
void inputPointer(int *p,int n);
void outputPointer(int *p,int n);
void bubbleSort1(int *arr,int n);
void bubbleSort2(int *p,int n);
int _tmain(int argc, _TCHAR* argv[])
{
int arr[cnt]={0};
int a[5];
int *p;
p = a;
input(arr,cnt);
bubbleSort1(arr,cnt);
output(arr,cnt);
inputPointer(p, cnt);
bubbleSort2(p, cnt);
outputPointer(p, cnt);
return 0;
}
//输入数组
void input(int *arr,int n)
{
printf("input a arr:\n");
for(int i=0;i<n;i++)
{
scanf_s("%d",&arr[i]);
}
}
//输出数组
void output(int *arr,int n)
{
printf("排序后:\n");
for(int i=0;i<n;i++)
{
printf("%d ",arr[i]);
}
printf("\n");
}
//指针输入
void inputPointer(int *p,int n)
{
printf("input a pointer\n");
int i;
for(i=0; i<n; i++)
{
scanf_s("%d",p+i);
}
}
//指针输出
void outputPointer(int *p,int n)
{
printf("排序后:\n");
int i;
for(i=0; i<n; i++)
{
printf("%d ",*(p+i));
}
printf("\n");
}
//用数组实现冒泡排序降序
void bubbleSort1(int *arr,int n)
{
int i,j,temp;
for(i=0;i<n-1;i++)
{
for(j=0;j<n-i-1;j++)
{
if(arr[j]<arr[j+1])
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
//用指针实现冒泡排序降序
void bubbleSort2(int *p,int n)
{
int i,j,temp;
for(i=0;i<n-1;i++)
{
for(j=0;j<n-i-1;j++)
{
if(*(p+j)<*(p+j+1))
{
temp=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=temp;
}
}
}
}
运行结果: