C++ 光速入门指南day05

2021-06-09  本文已影响0人  __method__

数组

练习:五只⼩猪称体重 案例描述: 在⼀个数组中记录了五只⼩猪的体重,如:int arr[5] = {300,350,200,400,250}; 找出并打印最重的⼩猪体重。

#include <iostream>
#include<cmath>
using namespace std;
int main(){
    // 五只小猪
    int arr[5] = {300,350,200,400,250};
    int maxWeight = 0;
    for (int i = 0; i < (sizeof(arr)/sizeof(arr[0])); i++) {
       int  onePigWeight = arr[i];
       // 判断
       if (onePigWeight > maxWeight)
            maxWeight = onePigWeight;
    }
    cout<< maxWeight<< endl;
}
#include <iostream>
#include<cmath>
using namespace std;
int main(){
    // 交换两个变量
//    int a = 100;
//    int b = 300;
//    int temp;
//    temp = a;
//    a = b;
//    b = temp;
//    cout<< a<< endl;
//    cout<< b<< endl;
    int arr[] = {1, 3, 5, 2, 4, 29, 47, 33};
    int len = sizeof(arr)/sizeof(arr[0]);
    int temp;

    for (int i = 0; i < len/2 ;i++) {
        temp = arr[i];
        arr[i] = arr[len-1-i];
        arr[len-1-i] =temp;
    }
    for (int i = 0; i < len ;i++) {
       cout<< arr[i] << "  ";
    }


}

2

#include <iostream>
#include<cmath>
using namespace std;
int main(){

    int arr[] = {1, 3, 5, 2, 4, 29, 47, 33};
    int len = sizeof(arr)/sizeof(arr[0]);
    for(int min=0, max=len-1; min<=max;max--, min++){
        int temp = arr[min];
        arr[min] = arr[max];
        arr[max] = temp;
    }
    for (int i = 0; i < len ;i++) {
       cout<< arr[i] << "  ";
    }
}

冒泡排序

将数组 { 4,2,8,0,5,7,1,3,9 } 进⾏升序排序
#include <iostream>
#include<cmath>
using namespace std;
int main(){
    int arr[] = { 4,2,8,0,5,7,1,3,9 };
    int len = sizeof(arr)/sizeof(arr[0]);
    for (int i = 0; i < len-1 ; i++) {
        for (int j = 0; j < len-i-1 ; j++) {
            // 没有 a[10]  比较到 a[8]  a[9]
            if(arr[j] > arr[j+1]){
                // 交换
                int temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
    }

    for (int i = 0; i < len ;i++) {
        cout<< arr[i] << "  ";
    }
}

选择排序

先把最小的拿出来
剩下的, 再把最小的拿出来
剩下的, 再把最小的拿出来
。。。
每次选择还没处理的元素最小的元素

#include <iostream>
#include<cmath>
using namespace std;
int main(){
    int arr[] = { 4,2,8,0,5,7,1,3,9 };
    int len = sizeof(arr)/sizeof(arr[0]);

    for (int i = 0; i < len ; i++) {
        int minIndex = i;
        for (int j = i; j < len; j++) {
            if(arr[j] < arr[minIndex])
                minIndex = j;
        }
        //交换
        int temp = arr[i];
        arr[i] = arr[minIndex];
        arr[minIndex] = temp;
    }


    for (int i = 0; i < len ;i++) {
        cout<< arr[i] << "  ";
    }
}

上一篇 下一篇

猜你喜欢

热点阅读