#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;
}
本人改好了 你看看这样行不行
测试了下结果没啥问题