美文网首页
C++ 光速入门指南day05

C++ 光速入门指南day05

作者: __method__ | 来源:发表于2021-06-09 23:00 被阅读0次

数组

练习:五只⼩猪称体重 案例描述: 在⼀个数组中记录了五只⼩猪的体重,如: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;
}
  • 数组元素逆置 案例描述:请声明⼀个5个元素的数组,并且将元素逆置. (如原数组元素为:1,3,2,5,4;逆置后输出结果为:4,5,2,3,1);
#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] << "  ";
    }
}

冒泡排序

    1. 比较相邻元素, 如果第一个比第二个大, 就交换他们两个
    1. 对每一对相邻的元素做同样的工作, 执行完毕后, 找到第一个最大值
    1. 重复以上步骤, 每次比较 次数 - 1, 直到不需要比较
将数组 { 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] << "  ";
    }
}

相关文章

网友评论

      本文标题:C++ 光速入门指南day05

      本文链接:https://www.haomeiwen.com/subject/wdkyeltx.html