PTA-一维数组最大值和最小值交换

找出含有10个元素一维数组中的最大值和最小值,并互换这两个数的位置。

输入格式:

在一行中输入10个整数,数据之间只能用1个空格间隔。

输出格式:

在一行中按照“max=最大值,min=最小值”的格式输出结果,最大值和最小值均原样输出,没有列宽控制。
在下一行中输出交换完最大值和最小值的一维数组,每个数据输出占5列。

输入:

6 5 1 2 3 4 8 9 7 5

输出:

max=9,min=1
    6    5    9    2    3    4    8    1    7    5

答案:

#include<stdio.h>
int main()
{
    int a[10],max,min,k1=0,k2=0,i,t;
    scanf("%d",&a[0]);
    max=min=a[0];
    for(i=1;i<10;i++)
    {
        scanf("%d",&a[i]);
        if(max<a[i])
        {
        max=a[i];
        k1=i;}
        if(min>a[i])
        {
        min=a[i];
        k2=i;}
    }
    t=a[k1];
    a[k1]=a[k2];
    a[k2]=t;
    printf("max=%d,min=%d\n",max,min);
    for(i=0;i<10;i++)
    printf("%5d",a[i]);
    return 0;
}

  • 14
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 可以通过以下步骤来找出包含10个元素一维数组中的最大和最小,并交换这两个数的位置: 1. 声明一个长度为10的一维数组,存储10个元素。 2. 初始化数组中的元素,可以手动输入或使用随机数生成。 3. 定义变量max和min,分别表示最大和最小,初始数组的第一个元素。 4. 使用for循环遍历数组中的所有元素,比较每个元素与max和min的大小关系,更新max和min的。 5. 找到最大和最小之后,交换它们在数组中的位置。可以使用一个中间变量来完成交换操作。 以下是示例代码: ```python # 声明一个长度为10的一维数组 arr = [0] * 10 # 初始化数组中的元素,这里使用随机数生成 import random for i in range(10): arr[i] = random.randint(1, 100) # 找出最大和最小,并记录它们的下标 max_idx = min_idx = 0 for i in range(1, 10): if arr[i] > arr[max_idx]: max_idx = i elif arr[i] < arr[min_idx]: min_idx = i # 输出最大和最小 print("最大为:", arr[max_idx]) print("最小为:", arr[min_idx]) # 交换最大和最小的位置 temp = arr[max_idx] arr[max_idx] = arr[min_idx] arr[min_idx] = temp # 输出交换后的数组 print("交换后的数组为:", arr) ``` 注意,以上代码是Python语言的示例代码,如果您使用的是其他编程语言,代码会有所不同,但是思路是相通的。 ### 回答2: 对于含有10个元素的一维数组,我们可以使用循环遍历的方式找出最大和最小。首先,我们可以设定一个初始,假设一维数组的第一个元素为最大,第一个元素也为最小。然后,我们可以遍历整个一维数组,使用if语句判断是否找到了更大的元素或更小的元素,如果是,则更新最大和最小和下标。代码如下: int a[10]={1,2,3,4,5,6,7,8,9,10}; int max_val=a[0]; int min_val=a[0]; int max_index=0; int min_index=0; for(int i=1;i<10;i++){ if(a[i]>max_val){ max_val=a[i]; max_index=i; } if(a[i]<min_val){ min_val=a[i]; min_index=i; } } 一旦找到最大和最小的位置,我们可以通过交换两个数的位置来实现互换操作,代码如下: int temp=a[max_index]; a[max_index]=a[min_index]; a[min_index]=temp; 完成以上操作后,一维数组的最大和最小的位置已经被互换了。 ### 回答3: 首先,我们需要理解一维数组的概念。一维数组是由若干个元素组成的有序集合,这些元素通过一个整数索引来访问和操作。在本题中,我们需要找出10个元素一维数组中的最大和最小,并将它们的位置互换。 要实现这个目标,我们可以采用遍历数组的方法。首先,我们可以设定一个变量max,把数组中第一个元素赋给它,然后依次访问数组中的每个元素,与max比较大小,如果该元素大于max,则把它赋给max。同理,设定一个变量min,把数组中第一个元素赋给它,然后依次访问数组中的每个元素,与min比较大小,如果该元素小于min,则把它赋给min。经过这个过程,我们就可以找出数组中的最大和最小了。 接下来,我们将最大和最小的位置互换。我们可以采用交换元素的方法,具体步骤如下: 1. 定义一个临时变量temp,把最大赋给它。 2. 把最小赋给最大的位置。 3. 把temp赋给最小的位置。 经过这个过程,最大和最小的位置就互换了。 在实际编程中,我们可以采用如下代码实现: ``` int arr[10]={1,5,8,2,6,4,9,3,7,10}; int max=arr[0]; int min=arr[0]; int temp; for(int i=1;i<10;i++){ if(arr[i]>max){ max=arr[i]; } if(arr[i]<min){ min=arr[i]; } } temp=max; arr[max]=min; arr[min]=temp; ``` 以上代码实现了找出一个包含10个元素的一维数组中的最大和最小,并互换这两个数的位置的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值