C语言编程:用指针编程,输入3个整数,从小到大的顺序输出

如题所述

用最简单的冒泡排序,用数组接受的标准输入,用指针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;
}
温馨提示:内容为网友见解,仅供参考
第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;
}
相似回答