C语言:定义一个包含10个元素的一维数组找出其中的最大值让其与第一个元素交换,找出最小值与最后一个园区交换,输出数组中各元素的值
代码如下:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main(){
int i, a[10], max, min, pmax, pmin, tmp;
srand(time(NULL));
for(i=0; i<10; i++){
a[i] = rand()%100+0;
}
printf("这十个数分别为:\n");
for (i=0; i<10; i++){
printf("%d\t", a[i]);
}
max = a[0];
pmax = 0;
for(i=1; i<10; i++){
if(a[i] > max){
max = a[i];
pmax = i;
}
}
printf("\n\n最大值:\t%d", max);
min = a[0];
pmin = 0;
for(i=1; i<10; i++){
if(a[i] < min){
min = a[i];
pmin = i;
}
}
printf("\n最小值:\t%d", min);
tmp = a[0];
a[0] = a[pmin];
a[pmin] = tmp;
tmp = a[9];
a[9] = a[pmax];
a[pmax] = tmp;
printf("\n\n经过调整过后的十个数分别为:\n");
for (i=0; i<10; i++){
printf("%d\t", a[i]);
}
}
注意事项
数组位置交换的几种方法
1、引入第三个变量
var arr = ['one','two'];var item = arr[0];
arr[0] = arr[1];
arr[1] = item;
2、splice方法, splice() 方法会直接对数组进行修改,splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。
arr.splice(1,1,arr[0]) 将第二个值替换成第一个值,...arr.splice(1,1,arr[0])拿到被替换的值,即第二个值,
arr.splice(0,1,...arr.splice(1,1,arr[0]))将第一个值换成第二个值
var arr = ['one','two'];
arr.splice(0,1,...arr.splice(1,1,arr[0]))// 或者 arr.splice(0,1,arr.splice(1,1,arr[0])[0])//arr.splice(index2,1,...arr.splice(index1, 1 , arr[index2]));
3、数组解构赋值(数组长度大于2时不适用)
var arr = ['one','two'];
[arr[0],arr[1]] = [arr[1],arr[0]]// [arr[index1],arr[index2]] = [arr[index2],arr[index1]];