数值型数组输出一组数组,实现最大的与第一个元素交换,最小的与最后一个元素交换

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


提示:以下是本篇文章正文内容,下面案例可供参考

一、数组是什么?

数组:包含多项同类数据结构

一维数组:一个下标区分分量

一系列相同类型的数据:定义时一个类型

同一个名字命名:一系列相同类型的数据的内存起始地址(常量)

用下标标识分量,如a[0]、a[1]、.......、a[9]等。假设下标用i表示a[i]可访问数组的任何一个分量(数据元素)

a代表数组

下标从0开始

合法下标范围:0——n-1

二、数组的一般格式

数据类型:数组名[数组长度]

例如:int a[10];

说明:

数组的数据类型就是数组元素的数据结构类型

数组的长度就是数组能够包含的数组元素个数,为常量表达式

错误示例:

1、int n=10    //n是整型变量

2、int a[n];

三、一维数组元素的引用

格式:数组名[下标]

下标时数组元素的序号,可以是一个整型常量,或整型表达式。

c语言规定,数组元素的下标从0开始,当数组长度为n时,最末元素的下标是n-1 。

a数组的元素:a[0]、a[1]、a[2]、a[3].......

四、代码和运行结果如下

代码:
#include<stdio.h>
int main(){
    int arr[] = { 666,777,222,888,999 };
    int max = arr[0], min = arr[0];
    int row1 = 0, row2 = 0;
    int i = 0;
    for (i = 1; i < 5; i++) {
        if (max < arr[i])
        {
            max = arr[i];
            row1 = i;
        }
        if (min > arr[i]) {
            min = arr[i];
            row2 = i;
        }
    }
    int temp;
    temp = arr[0];
    arr[0] = max;
    arr[row1] = temp;
    for (int i = 0; i < 5; i++)
        printf("%5d", arr[i]);
    puts("\n");
    if (row2 == 0) 
    {
        temp = arr[4];
        arr[4] = arr[row1];
        arr[row1] = temp;
    }
    else
    {
        temp = arr[4];
        arr[4] = arr[row2];
        arr[row2] = temp;
    }
    for (int i = 0; i < 5; i++)
        printf("%5d", arr[i]);
}

结果截图:

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以用以下方式实现: 1. 首先,声明一个数值数组,将需要输入的数字存储在该数组中。 2. 通过循环遍历数组,寻找最大值和最小值以及它们对应的索引。 3. 通过交换数组最大值和最小值的位置来实现最大值和最小值元素的交换。 4. 最后输出整个数组即可。 完整代码如下: num_list = [] # 声明一个空的数组 n = input("请输入一组数字:") # 输入需要序的数字,以空格隔开 num_list = n.split() # 将输入的字符串按空格拆分成数字列表 num_list = [int(num) for num in num_list] # 将字符数字转换为整数字 # 定义变量存储最大值、最小值以及它们的索引 max_val = num_list[0] min_val = num_list[0] max_index = 0 min_index = 0 # 循环遍历数组,查找最大值、最小值以及它们的索引 for i in range(1, len(num_list)): if num_list[i] > max_val: max_val = num_list[i] max_index = i if num_list[i] < min_val: min_val = num_list[i] min_index = i # 将最大值和最小值元素交换 num_list[max_index], num_list[min_index] = num_list[min_index], num_list[max_index] # 输出序后的数组 print(num_list) ### 回答2: C语言是一种常用的计算机程序设计语言,能够实现高效、灵活的编程,尤其对于数组操作具有强大的支持。在本题中,我们需要通过C语言输入一个数组,然后对其中最大值和最小值进行交换,最终输出数组。 首先,我们可以通过scanf函数从键盘输入一个数组,如下所示: ``` int a[10]; for(int i=0;i<10;i++) { scanf("%d",&a[i]); } ``` 这样就可以输入一个长度为10的整数组a。接着,我们可以编写函数来寻找其中的最大值和最小值,并交换它们与第一个元素最后个元素。 首先是寻找最大值和最小值的函数: ``` void find_max_min(int a[], int len, int *max, int *min) { *max=a[0]; *min=a[0]; for(int i=1;i<len;i++) { if(a[i]>*max) *max=a[i]; if(a[i]<*min) *min=a[i]; } } ``` 这里利用指针来返回最大值和最小值,是因为函数不允许返回多个值。 接着是交换函数,我们可以定义两个变量temp1和temp2,并交换它们的值: ``` void swap(int *a, int *b) { int temp=*a; *a=*b; *b=temp; } ``` 最后,我们可以在主函数中调用上述函数,进行最大值和最小值的寻找和交换: ``` int main() { int a[10]; for(int i=0;i<10;i++) { scanf("%d",&a[i]); } int max,min; find_max_min(a,10,&max,&min); //交换最大值和第一个元素 for(int i=0;i<10;i++) { if(a[i]==max) { swap(&a[i],&a[0]); break; } } //交换最小值和最后个元素 for(int i=0;i<10;i++) { if(a[i]==min) { swap(&a[i],&a[9]); break; } } //输出数组 for(int i=0;i<10;i++) { printf("%d ",a[i]); } return 0; } ``` 这样就可以输出最终的交换后的数组,验证我们的操作是否正确。 以上就是利用C语言输入数组最大的与第一个元素交换最小的与最后个元素交换,并输出数组的详细步骤。 ### 回答3: 输入一个数组可以通过使用scanf函数来完成。在输入数组前,需要确定数组的长度,这可以通过声明数组时指定数组长度来实现。例如,int arr[10]表示整数组arr的长度为10。 要在C语言交换个元素,可以使用一个临时变量来完成。例如,如果要交换arr[i]和arr[j],可以使用以下代码: int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; 为了找到数组中的最大值和最小值,可以使用遍历整个数组的方法。首先将第一个元素设定为最大值和最小值,然后逐个比较数组中的元素,如果发现比当前最大值大的元素,则将该元素设定为最大值,如果发现比当前最小值小的元素,则将该元素设定为最小值。 找到最大值和最小值后,就可以执行元素交换。将最大值与第一个元素交换,将最小值与最后个元素交换交换后,输出数组即可。 以下是完整的代码示例: ``` #include <stdio.h> int main() { int arr[10]; int len = 10; int i, max, min; // 输入数组 printf("请输入%d个整数:\n", len); for (i = 0; i < len; i++) { scanf("%d", &arr[i]); } // 找到最大值和最小值 max = arr[0]; min = arr[0]; for (i = 1; i < len; i++) { if (arr[i] > max) { max = arr[i]; } if (arr[i] < min) { min = arr[i]; } } // 交换最大值和第一个元素 for (i = 0; i < len; i++) { if (arr[i] == max) { int temp = arr[i]; arr[i] = arr[0]; arr[0] = temp; break; } } // 交换最小值和最后个元素 for (i = 0; i < len; i++) { if (arr[i] == min) { int temp = arr[i]; arr[i] = arr[len-1]; arr[len-1] = temp; break; } } // 输出数组 printf("交换后的数组为:\n"); for (i = 0; i < len; i++) { printf("%d ", arr[i]); } printf("\n"); return 0; } ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值