//
#include<stdio.h>
int pmax(int *a,int n,int *t)
{
int j;
*t=0;
for(j=0;j<n-1;j++)
if(a[j]>a[*t]) *t=j;
return *t;
}
int pmin(int *a,int n,int *t)
{
int j;
*t=0;
for(j=0;j<n-1;j++)
if(a[j]<a[*t]) *t=j;
return *t;
}
int main()
{
int k,m,t,a[10],i,(*pf)(int *,int ,int *);
printf("请输入10个数字:\n");
for(i=0;i<10;i++)
scanf("%d",*(a+i));
pf=pmax;
k=pf(a,10,&t);
m=a[0];
a[0]=a[k];
a[k]=m;
pf=pmin;
k=pf(a,10,&t);
m=a[9];
a[9]=a[k];
a[k]=m;
printf("10个数字重新排序为:\n");
for(i=0;i<10;i++)
printf("%d ",&a[i]);
return 0;
}
输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。//练习函数指针,程序有错,一个结果也没有,求改错。
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
浪客 2022-03-30 09:16关注scanf("%d",a+i);
printf("%d ",a[i]);2个for循环都没到最后一个元素
for(j=0;j<n;j++)//本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报 编辑记录解决 2无用