C语言编程题,10个数,把最大值与最后一个数对调,最小值与第一个数对调,用指针的方法

来源:百度知道 编辑:UC知道 时间:2024/06/28 05:12:03
急啊,快快帮帮忙,谢谢了

#include<stdio.h>
#define N 10

int main()
{
int i,t,*p_max,*p_min,*p,a[N];

printf("请输入%d个数: ",N);
for(i=0;i<N;i++)
scanf("%d",&a[i]);
p=a;
p_max=p;
p_min=p;

for(i=1;i<N;i++) /*此循环用于找最小的数和最大的数的地址*/
{
if(*(p+i)>*p_max)
p_max=p+i;
if(*(p+i)<*p_min)
p_min=p+i;
}
p=a;

/*最大的数与最后一个数对换*/
t=*(p+N-1);
*(p+N-1)=*p_max;
*p_max=t;

/*最小的数与第一个数对换*/
t=*p;
*p=*p_min;
*p_min=t;

/*打印输出*/
for(i=0;i<N;i++)
printf("%d ",*(p+i));
printf("\n");

return 0;
}
我自己写的,通过编译,验证结果正确

#include "stdio.h"

main()
{
int i,a[10]={0},temp,*pmin=10000,*pmax=0;
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
if(a[i]<*pmin)*pmin=a[i];
if(a[i]