将一组数前后对应位置数交换

本文介绍了使用Java实现数组反转及元素交换的算法,并通过示例展示了具体操作过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



package ArrayTrans;

public class ArrayTransOrderTest {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  int[] a = {1,2,3,4,5,6,7,8,9};//定义int型数组
  for(int i=0; i<a.length; i++) {
   System.out.print(a[i]+" ");
  }
  System.out.println();
  swap(a);//调用swap函数
  for(int i=0; i<a.length; i++) {
   System.out.print(a[i] + " ");
  }
 }
 //将一组数前后对应位置数交换
 private static void swap(int[] x) {
  // TODO Auto-generated method stub
  for(int i=0; i<(x.length-1)/2; i++) {
  int t = x[i];
  x[i] = x[x.length-1-i];
  x[x.length-1-i] = t;
  }
 }
  
}


运行结果:

1 2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 2 1

在C语言中,我们可以创建一个简单的函来完成这个任务。首先,我们需要输入10个整存储到数组中,然后计算最大和最小,接着交换这两个与其对应位置的元素。以下是完整的示例代码: ```c #include <stdio.h> // 函声明,用于找出数组的最大、最小交换相应位置的元素 void findAndSwap(int arr[], int size); int main() { int numbers[10]; printf("请输入10个整:\n"); for (int i = 0; i < 10; i++) { scanf("%d", &numbers[i]); } // 调用函处理数组 findAndSwap(numbers, sizeof(numbers) / sizeof(numbers[0])); printf("交换前的数组:"); for (int i = 0; i < 10; i++) { printf("%d ", numbers[i]); } printf("\n"); printf("交换后的数组:"); for (int i = 0; i < 10; i++) { printf("%d ", numbers[i]); // 因为数组元素已经交换过了,所以直接输出 } printf("\n"); return 0; } // 找出最大和最小交换相应位置的元素 void findAndSwap(int arr[], int size) { int min = arr[0], max = arr[0]; // 假设第一个元素既是最大也是最小 for (int i = 1; i < size; i++) { if (arr[i] > max) { max = arr[i]; } else if (arr[i] < min) { min = arr[i]; } } // 交换位置 int temp = arr[0]; arr[0] = max; arr[size - 1] = temp; temp = arr[size - 1]; arr[size - 1] = min; arr[0] = temp; } ``` 在这个程序中,`findAndSwap` 函首先初始化两个变量 `min` 和 `max` 为数组的第一个元素,然后遍历整个数组来寻找真正的最大和最小。最后,它会用这两个替换数组的第一和最后一个元素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值