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

#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 @   行至为成  阅读(66)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示