2022.9.20从零开始学习c++的第四天。

数组

#include<iostream>
#include<cstdlib>
#include<string>
using namespace std;

int main42()
{
    //数组
    //数组中每个数据元素都是相同的数据类型
    //数组由连续内存位置组成的

    int arr[5];
    arr[0] = 1;
    arr[1] = 2;
    arr[2] = 3;
    arr[3] = 4;
    arr[4] = 5;
    cout << arr[4] << endl;

    int arr2[5] = { 10,20,30,40,50 };
    //初始化时,没有赋值的元素变量会自动补为0
    for (int i = 0; i < 5; i++)
    {
        cout << arr2[i] << endl;

    }

    int arr3[] = { 50,60,70,80,90 };
    //定义数组的时候,必须定义初始长度

    //一维数组数组名用途
    //统计整个数组在内存中的长度
    //获取数组在内存中的首地址
    cout << sizeof(arr) << endl;
    cout << sizeof(arr[0]) << endl;
    cout << arr << endl;//数组中的首地址
    cout << &arr[0] << endl;//&加数组中的元素,为该元素地址
    cout << (int)arr << endl;//将地址的16位进制转换为10进制数
    //数组名是常量,代表这个数组的首地址,不可以进行赋值

    //五只小猪称体重
    int arr4[5] = { 300, 350, 200, 400, 250 };
    int max = 0;
    for (int i = 0; i < 5; i++)
    {
        if (max < arr4[i])
        {
            max = arr4[i];
        }
    }
    cout << max << endl;

    //数组元素逆置,即首尾交换
    int start = 0;
    int end = sizeof(arr) / sizeof(arr[0]) - 1;
    int temp;
    for (;start < end;)
    {
        temp = arr[start];
        arr[start] = arr[end];
        arr[end] = temp;
        start++;
        end--;
    }
    for (int a = 0; a < sizeof(arr) / sizeof(arr[0]) ; a++)
    {
        cout << arr[a] << "\t" << endl;;
    }

     //冒泡排序
    //排序的总轮数等于元素个数减一
    //每轮对比的次数等于元素的个数减去排序的轮数减一
    int a[] = { 4,2,8,0,5,7,1,3,9 };

    for (int i = 0; i < sizeof(a) / sizeof(a[0]); i++)
    {
        cout<<a[i];
    }
    cout << endl;
    for (int i = 1; i < sizeof(a) / sizeof(a[0]) ; i++)//排序的总轮数等于元素个数减一
    {
        for (int j = 0; j < sizeof(a) / sizeof(a[0]) - i ; j++)
        {
            if(a[j]>a[j+1])
                {
                int temp = a[j];
                    a[j] = a[j + 1];
                    a[j + 1] = temp;
                }
        }
    }
    for (int i = 0; i < sizeof(a) / sizeof(a[0]); i++)
    {
        cout << a[i];
    }
    cout<<endl;

    //二维数组定义方式
    int A[2][3];
    A[0][0] = 1;
    A[0][1] = 2;
    A[0][2] = 3;
    A[1][0] = 4;
    A[1][1] = 5;
    A[1][2] = 6;
    for (int i = 0; i < 2; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            cout << A[i][j] << endl;
        }
    }

    int B[2][3] =
    {
        {1,2,3},
        {4,5,6}
    };
    for (int i = 0; i < 2; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            cout << B[i][j] << "\t";
        }
        cout << endl;
    }

    int C[2][3] = { 1,2,3,4,5,6 };
    for (int i = 0; i < 2; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            cout << C[i][j] << "\t";
        }
        cout << endl;
    }

    int D[][3]= { 1,2,3,4,5,6 };
    for (int i = 0; i < 2; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            cout << D[i][j] << "\t";
        }
        cout << endl;
    }

    //二维数组的数组名称
    //查看二维数组所占的内存空间
    //查看二维数组的首地址

    cout << sizeof(A) << endl;
    cout << sizeof(A[0]) << endl;
    cout << sizeof(A[0][0]) << endl;
    cout << sizeof(A) / sizeof(A[0]) << endl;//列数
    cout << sizeof(A[0])/ sizeof(A[0][0]) << endl;//行数
    cout << A << endl;
    cout << A[0]<< endl;
    cout << A[1] << endl;
    cout << &A[0][0] << endl;

    //考试成绩的统计
    string name[3] = { "张三","李四","王五" };

    int score[3][3] = { 100,100,100,90,50,100,60,70,80 };
    for (int i = 0; i < 3; i++)
    {
        int sum=0;

        for (int j = 0; j < 3; j++)
        {
            
            sum = sum + score[i][j];
            cout << score[i][j] << "\t";
            
        }
        cout << name[i]<<"总分" << sum;
        cout << endl;
    }

    system("pause");//不知道为什么system突然标红,显示system不明确,但不影响程序。加一个头文件<cstdlib>解决问题

    return 0;

}

函数

#include<iostream>
using namespace std;

//函数
    //将一个经常使用的代码封装起来,减少重复代码
    /*
    返回值类型 函数名 (参数列表)
    {
      函数体语句
      return表达式
    }
    */
//如果函数不需要返回值,声明的时候可以写void

//加法函数
int add(int num1, int num2)
//mun1,mun2没有实际的值,叫做形参
{
    int sum = num1 + num2;
    return sum;
}

//两个数字进行交换的函数
void swap(int num1, int num2)
{
    cout << "交换前" << endl;
    cout << num1 << num2 << endl;
    int temp = num1;
    num1 = num2;
    num2 = temp;
    cout << "交换后" << endl;
    cout << num1 << num2 << endl;

    return;//返回值不需要的时候,可以不写return
}

//函数的调用
//函数名(传入参数)
//值传递,函数调用时实参数值传入形参
//如果形参发生改变,并不会影响到实参

/*
函数的常见样式
1.无参无返
2.有参无返
3.无参有返
4.有参有返
*/

//1.无参无返
void test01()
{
    cout << "this is test01" << endl;
}

//2.有参无返
void test02(int a)
{
    cout << "this is test02 a=" << a << endl;
}

//3.无参有返
int test03()
{
    cout << "this is test03" << endl;
    return 1000;
}

//4.有参有返
int test04(int a)
{
    cout << "this is test04 a=" <<a<< endl;
    return a;
}

//函数的声明
//告诉编译器函数的名称以及如何调用函数,函数的主题可以单独定义
//函数可以声明多次,但是函数的定义只能有一次

int max(int a, int b);//提前告诉编译器函数的存在(函数的声明)

//函数份文件的编写
//1.创建.h后缀名的头文件
//2.创建.cpp后缀名的源文件
//3.在头文件中写函数的声明
//4.在源文件中写函数的定义

int main()
{
    int a = 99;
    int b = 10;
    //a,b是实际的参数,叫实参
    int c=add(a, b);
    cout << c << endl;
    swap(a, b);
    cout << a<< b<< endl;//形参发生改变,实参不变

     test01();
     test02(100);
     int A = test03();
     cout << A << endl;
     int num2=test04(10000);//赋予函数返回值
     cout << num2 << endl;

     cout << max(9999, 999) << endl;

    system("pause");

    return 0;
}

//比较函数
int max(int a, int b)
{
    return a > b ? a : b;

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值