找数组的最大值并与第一位交换

#include <stdio.h>
int main()
{
	//定义
	int a[5] = {7, 8, 4, 1, 5};
	int *p; 
	int i;
	int max;
	max = a[0];
	int maxTemp;
	int maxX;
	int min;
	min = a[0];
	int minTemp;
	int minX;
	int length = sizeof(a) / sizeof(int);

	//输出数组 
	for(p=a; p<a+length; p++){
		printf("%-4d", *p);
	}
	printf("\n");
	
	//找到最值及下标
	for(i=0; i<length; i++){
		if(a[i]>max){
			max = a[i];
			maxX = i;
		}	
		if(a[i]<min){
			min = a[i];
			minX = i;
		}
	}
	maxTemp = a[0];
	a[0] = a[maxX];
	a[maxX] = maxTemp; 
	
	minTemp = a[length-1];
	a[length-1] = a[minX];
	a[minX] = minTemp;
	
	//输出数组 
	for(p=a; p<a+length; p++){
		printf("%-4d", *p);
	}
	printf("\n");
	return 0;
} 

学习到:

  1. 思路:

    从数组中找到最大值的下标,然后将最大值与第一位元素交换

  2. 从数组中找到最大值代码

    int max;
    int a[] = {1,234 ,5535};
    max = a[0];
    for(i=0; i<length; i++){
        if(a[i]>max){
            max = a[i];//此时最大值的下标是i
        }
    }
    
  3. 用指针输出数组代码

    int a[5];
    int *p;
    
    for(p = a; p<a+5; p++){
        printf("%d\n", *p);
    }
    
posted @ 2022-11-14 20:27  行至为成  阅读(75)  评论(0)    收藏  举报