编写C语言程序,输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。

2025-05-19 21:07:05
推荐回答(3个)
回答1:

#include 

main()

{

    int a[10],i,max,maxp,min,minp,t;

    printf("请输入数组");

    for(i=0;i<10;i++)//是10不是1

    scanf("%d",&a[i]);//这里丢了个括号

    max=min=a[0];

    maxp=minp=0;

    for(i=1;i<10;i++)

    {

        if(a[i]>max)

        {

        max=a[i];

        maxp=i;

        }

           if(a[i]

        {

        min=a[i];

        minp=i;

        }

}//for循环应到这为止

if(minp!=0)//注意要加这个条件  防止最小值是第一个时交换  出错

{

        t=a[0];

        a[0]=a[maxp];

           a[maxp]=t;

        t=a[9];

        a[9]=a[minp];

        a[minp]=t;

}

    else

{

t=a[0];

        a[0]=a[maxp];

           a[maxp]=t;

        t=a[9];

        a[9]=a[maxp];

        a[maxp]=t;

}


for(i=0;i<10;i++)

{

if(i!=4)

printf("%8d",a[i]);

else printf("%8d\n",a[i]);

}

printf("\n");

}


没问题了   已改正

可能出错的情况都测试了   这样就可以同时找最大值最小值了

回答2:

*min=a[n];a[n]=k;

*max=a[0];a[0]=j;

n=7,但数组的下标为0-6,出现了下标越界。

#include

int main(void)

printf("请输入数组:");

a[0]=a[maxp];

a[maxp]=t;

printf("输出:\n");

}

数组中的元素

数组中的所有元素都具有相同类型。数组中的元素存储在一个连续性的内存块中,并通过索引来访问(这一点也和结构和类中的字段不同,它们通过名称来访问)。数组元素并非只能是基元数据类型,还可以是结构、枚举或类。

以上内容参考:百度百科-数组

回答3:

你的实现有问题,大小值位置必须分开找,找完之后交换,再找

#include
int main(void)
{
 int a[10],i,max,maxp,min,minp,t;
 printf("请输入数组:");
 for(i=0;i<10;i++)
  scanf("%d",&a[i]);
 minp=0;
 for(i=1;i<10;i++)
 {
  if(a[i]   minp=i;
 }
 t=a[9];
 a[9]=a[minp];
 a[minp]=t;
 maxp=0;
 for(i=1;i<10;i++)
 {
  if(a[i]>a[maxp])
   maxp=i;
 }
 t=a[0];
 a[0]=a[maxp];
 a[maxp]=t;

 printf("输出:\n");
 for(i=0;i<10;i++)
 {
  printf("%8d",a[i]);
  if((i+1)%5==0)
   printf("\n");

 }
 return 0;
}