改进后的,谢谢各位大佬的帮助
程序代码:
#include <stdio.h> #include<stdlib.h> void exchange(int *num,int count) { int max=num[0],min=num[0]; int max_count=0,min_count=0; //最值下标 int i,j,k,value; for(i=1;i<count;i++) //找到最大值下标 { if(max<num[i]) { max=num[i]; max_count=i; } } for(j=1;j<count;j++) //找到最小值下标 { if(min>num[j]) { min=num[j]; min_count=j; } } printf("\n"); //交换 value=num[max_count];num[max_count]=num[0];num[0]=value; //交换最大值 value=num[min_count];num[min_count]=num[count-1];num[count-1]=value; //交换最小值 for(k=0;k<count;k++) printf("%d ",num[k]); printf("\n"); } int main() { int *num=malloc(100); int count=0; char c=0; printf("输入数组(回车结束)\n"); while(c!='\n') { scanf("%d",&num[count++]); c=getchar(); } exchange(num,count); num=NULL; }