第1个回答 2020-03-23
用最简单的冒泡排序,用数组接受的标准输入,用指针p指向数组首地址。
实际数组首地址传入排序函数也可以,为了让楼主看一下指针指向,画蛇添足的又加了个int
*p指向arr。
#include
<stdio.h>
void
my_sort(int
*arr,
int
n)
{
int
i,
j;
int
tmp
=
0;
for
(i=0;
i<(n-1);
i++)
{
for
(j=i+1;
j<n;
j++)
{
if
(*(arr+j)
<
*(arr+i))
{
tmp
=
*(arr+j);
*(arr+j)
=
*(arr+i);
*(arr+i)
=
tmp;
}
}
}
}
int
main()
{
int
arr[3]
=
{0};
int
*p
=
arr;
printf("please
input
three
integer:\n");
int
i;
for
(i=0;
i<3;
i++)
{
scanf("%d",
arr+i);
}
my_sort(p,
3);
printf("\nAfter
sort:
\n");
for
(i=0;
i<3;
i++)
{
printf("%d
",
*(p+i));
}
printf("\n");
return
0;
}
第2个回答 2020-03-18
用最简单的冒泡排序,用数组接受的标准输入,用指针p指向数组首地址。
实际数组首地址传入排序函数也可以,为了让楼主看一下指针指向,画蛇添足的又加了个int
*p指向arr。
#include
<stdio.h>
void
my_sort(int
*arr,
int
n)
{
int
i,
j;
int
tmp
=
0;
for
(i=0;
i<(n-1);
i++)
{
for
(j=i+1;
j<n;
j++)
{
if
(*(arr+j)
<
*(arr+i))
{
tmp
=
*(arr+j);
*(arr+j)
=
*(arr+i);
*(arr+i)
=
tmp;
}
}
}
}
int
main()
{
int
arr[3]
=
{0};
int
*p
=
arr;
printf("please
input
three
integer:\n");
int
i;
for
(i=0;
i<3;
i++)
{
scanf("%d",
arr+i);
}
my_sort(p,
3);
printf("\nAfter
sort:
\n");
for
(i=0;
i<3;
i++)
{
printf("%d
",
*(p+i));
}
printf("\n");
return
0;
}