标题:交换最小值和最大值
只看楼主
黑暗骑士5D
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2019-11-6
结帖率:100%
已结贴  问题点数:20 回复次数:3 
交换最小值和最大值
本题要求编写程序,先将输入的一系列整数中的最小值与第一个数交换,然后将最大值与最后一个数交换,最后输出交换后的序列。

注意:题目保证最大和最小值都是唯一的。

输入格式:
输入在第一行中给出一个正整数N(≤10),第二行给出N个整数,数字间以空格分隔。

输出格式:
在一行中顺序输出交换后的序列,每个整数后跟一个空格。

输入样例:
5
8 2 5 1 4
输出样例:
1 2 5 4 8


int main()
{
  int n,i,min,max,cnt=0,mnt=0;
  scanf("%d",&n);
  int a[n];
  for(i=0;i<n;i++)
    scanf("%d",&a[i]);
  min=a[0],max=a[n-1];
  for(i=1;i<n;i++)
  {
    if(a[i]<min)
      {min=a[i];
      cnt++;}
  }
  if(cnt!=0)
  a[i]=a[0],a[0]=min;
  for(i=0;i<n-1;i++)
  {
    if(a[i]>max)
      {max=a[i];
      mnt++;}
  }
  if(mnt!=0)
  a[i]=a[n-1],a[n-1]=max;
  for(i=0;i<n;i++)
  printf("%d ",a[i]);
  return 0;
}
我这个问题在哪
搜索更多相关主题的帖子: max min 输出 最小值 交换 
2019-12-22 23:19
komorebi0110
Rank: 2
来 自:上海
等 级:论坛游民
帖 子:145
专家分:17
注 册:2019-11-23
得分:7 
i经过循环以后会等于n吧【??不太确定

我想要两颗西柚。
2019-12-22 23:24
komorebi0110
Rank: 2
来 自:上海
等 级:论坛游民
帖 子:145
专家分:17
注 册:2019-11-23
得分:0 
#include<stdio.h>
int main()
{ int n,i,min,max;
  int minIndex,maxIndex;
  scanf("%d",&n);
  int a[n];
  for(i=0;i<n;i++)
    scanf("%d",&a[i]);
  min=a[0];
  int x=0,y=0;
  for(i=0;i<n;i++)
  {
   if(a[i]<min)
      {minIndex=i;
      min=a[i];
      x++;}}
int temp1,temp2;
if(x>0)
{temp1=a[0];
a[0]=a[minIndex];
a[minIndex]=temp1;
}
max=a[n-1];
  for(i=0;i<n;i++)
  {
   if(a[i]>max)
      {maxIndex=i;
      max=a[i];
      y++;}}
      if(y>0)
      {temp2=a[n-1];
      a[n-1]=a[maxIndex];
      a[maxIndex]=temp2;}
  for(i=0;i<n;i++)
  printf("%d ",a[i]);
  return 0;
}


你试一下qaq我也是小白


[此贴子已经被作者于2019-12-23 00:39编辑过]


我想要两颗西柚。
2019-12-23 00:17
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
得分:7 
程序代码:
#include <stdio.h>
main()
{
    int n,i,a[10],c,d,min,max,j;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    min=max=a[0];
    for(i=0;i<n;i++)
    {
        if(a[i]<=min)
          {
              min=a[i];
              j=i;
          }
    }
    c=a[0];
    a[0]=min;
    a[j]=c;
    for(i=0;i<n;i++)
    {
        if(a[i]>=max)
          {
              max=a[i];
              j=i;
          }
    }
    d=max;
    a[j]=a[n-1];
    a[n-1]=d;
    for(i=0;i<n;i++)
    printf("%d ",a[i]);

}
2019-12-23 12:31



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-498565-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.216757 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved