/* 编写一个程序, 用指针方法对 10 个整数按由大到小顺序排序,要求使用选择
排序法。 (指针、数组、排序算法)*/
#include<stdio.h>
#define N 10
int main()
{
int a[N];
int* p;
p = a;
int i,j,k,temp;
for (i = 0; i < N; i++,p++)
scanf_s("%d", p);
for (i = 0; i < N-1; i++)
{ k = i;
for (j = i + 1; j < N; j++)
if (*(p+j) > *(p+k))
k = j;
temp = *(p+i); *(p+i) = *(p+k); *(p+k) = temp;
}
for(p=a;p<(a+N);p++)//for(p=a,i=0;i<N;i++,p++)
printf("%d", *p);
return 0;
}
#include<stdio.h>
#define N 5
void prin(int *p,int n)
{
int i;
for(i=0; i<N; i++) //for(p=a,i=0;i<N;i++,p++)
printf("%d ", *(p+i));
printf("\n");
}
int main()
{
int a[N];
int* p;
p = a;
int i,j,k,temp;
for (i = 0; i < N; i++)
scanf("%d", &*(p+i));
k = *p;
int b=0;
for (i = 0; i < N; i++)
{
b=0;
for (j = 0; j < N-i; j++)
if (*(p+j) > *(p+b))
{
b=j;
}
//printf("max:%d b:%d \n", *(p+b),b);
temp = *(p+(N-i-1));
*(p+(N-i-1)) =*(p+b);
*(p+b)=temp;
}
prin(p,N);
return 0;
}
你是想输入a[i]吧,输入成p了,p是指针
#include<stdio.h>
#define N 5
void prin(int *p,int n)
{
int i;
for(i=0; i<N; i++) //for(p=a,i=0;i<N;i++,p++)
printf("%d ", *(p+i));
printf("\n");
}
int main()
{
int a[N];
int* p;
p = a;
int i,j,k,temp;
for (i = 0; i < N; i++)
scanf("%d", &*(p+i));
k = *p;
int b=0;
for (i = 0; i < N; i++)
{
b=0;
for (j = 0; j < N-i; j++)
if (*(p+j) > *(p+b))
{
b=j;
}
//printf("max:%d b:%d \n", *(p+b),b);
temp = *(p+(N-i-1));
(p+(N-i-1)) =(p+b);
*(p+b)=temp;
}
prin(p,N);
return 0;
}