#include<stdio.h>
int main()
{
void inv(int *arr,int n);
int i,a[10],*p=a;
printf(“请输入十个数\n”);
for(i=0;i<10;i++,p++)
scanf(“%d”,p);
printf(“\n”);
p=a;
inv(a,10);
for(p=a;p<a+10;p++)
printf(“%d “,*p);
printf(“\n”);
}
void inv(int *arr,int n)
{
int t1,t2,*max,*min,k,m;
max=min=p;
for(p=arr;p<arr+n;p++)
{
if(*max<*p)
{
max=p;
k=i;
}
if(*min>*p)
{
min=p;
m=i;
}
}
t1=arr+k;
arr+k=arr+n-1;
arr+n-1=t1;
t2=arr+m;
arr+m=arr;
arr=t2;
}
选择排序法 用指针做 帮本人改改吧 写不动了!
int main()
{
void inv(int *arr,int n);
int i,a[10],*p=a;
printf(“请输入十个数\n”);
for(i=0;i<10;i++,p++)
scanf(“%d”,p);
printf(“\n”);
p=a;
inv(a,10);
for(p=a;p<a+10;p++)
printf(“%d “,*p);
printf(“\n”);
}
void inv(int *arr,int n)
{
int t1,t2,*max,*min,k,m;
max=min=p;
for(p=arr;p<arr+n;p++)
{
if(*max<*p)
{
max=p;
k=i;
}
if(*min>*p)
{
min=p;
m=i;
}
}
t1=arr+k;
arr+k=arr+n-1;
arr+n-1=t1;
t2=arr+m;
arr+m=arr;
arr=t2;
}
选择排序法 用指针做 帮本人改改吧 写不动了!
解决方案
10
#include <stdio.h>
#include <stdlib.h>
int main()
{
int array[5];
int i,j,*p,temp;
p=array;
printf("please input some integer:\n");
for(i=0;i<5;i++)
{
scanf("%d",p++);
}
p=array;
printf("排序前为:\n");
for(i=0;i<5;i++)
{
printf("%-5d",*p++);
}
p=array;
for(i=0;i<4;i++)
{
for(j=0;j<4-i;j++)
{
if(*(p+j)>*(p+j+1)) //用指针去引用:
#include<stdio.h>
int main()
{
void inv(int *arr,int n);
int i,a[10],*p=a;
printf(“请输入十个数\n”);
for(i=0;i<10;i++,p++)
scanf(“%d”,p);
printf(“\n”);
p=a;
inv(a,10);
for(p=a;p<a+10;p++)
printf(“%d “,*p);
printf(“\n”);
}
void inv(int *arr,int n)
{
int t1,t2,*max,*min,*p;
max=min=arr;
for(p=arr+1;p<arr+n;p++)
{
if(*max<*p)
{
max=p;
}
if(*min>*p)
{
min=p;
}
}
t1=arr[0];
arr[0]=*min;
*min=t1;
t2=arr[n-1];
arr[n-1]=*max;
*max=t2;
}
本人改好了 你看看这样行不行
测试了下结果没啥问题