2021-01-23 Le troisième jour de pointage et d'apprentissage du C ++


Un, le tableau

Le soi-disant tableau est une collection dans laquelle des éléments de données du même type sont stockés

Caractéristiques:

  • Chaque élément de données du tableau estLe même type de données

  • Le tableau est composé deEmplacement mémoire contiguconsister en

  • Nous pouvons passerIndicePour accéder aux éléments du tableau, l'indice de l'élément du tableau commence à 0

1. Tableau unidimensionnel

1.数据类型  数组名[ 数组长度 ]2.数据类型  数组名[ 数组长度 ]={
    
    1,值2...}3.数据类型  数组名[  ] = {
    
    1,值2...}

Objectif du nom de tableau unidimensionnel:

  • Comptez la longueur du tableau entier en mémoire: sizeof (nom du tableau)

  • Récupère la première adresse du tableau en mémoire: cout << nom du tableau << endl;

Exemple: afficher la longueur du tableau et la première adresse du tableau

#include<iostream>
using namespace std;

int main()
{
    
    
	int arr[] = {
    
     1,2,3,4,5,6 };
	cout << "整个数组所占内存空间:" << sizeof(arr) << endl;
	cout << "每个元素占用内存空间: " << sizeof(arr[0]) << endl;
	cout << "数组中元素个数:" << sizeof(arr) / sizeof(arr[0]) << endl;
	cout << "数组在内存中的首地址:" << arr << endl;
	cout << "数组中第一个元素地址:" << &arr[0] << endl;
	cout << "数组中第二个元素地址:" << &arr[1] << endl;
	



	system("pause");
	return 0;

}

Résultat de sortie
Insérez la description de l'image ici

Tri à bulles

L'algorithme de tri le plus couramment utilisé pour trier les éléments du tableau
s'entraîner:

  1. Comparez les éléments adjacents, si le premier est supérieur au second, échangez-les deux

  2. Faites le même travail pour chaque paire d'éléments adjacents et trouvez la première valeur maximale après l'exécution

  3. Répétez les étapes ci-dessus, le nombre de comparaisons -1 à chaque fois, jusqu'à ce qu'aucune comparaison ne soit nécessaire

Le nombre total de tours de tri = le nombre d'éléments-1 Le nombre de
comparaisons à chaque tour = le nombre d'éléments-le nombre de tours de tri-1

Analyse de cas
Étant donné un ensemble de données {4,2,8,0,5,7,1,3,9}, triez-les par ordre croissant selon la méthode de tri par bulles
Insérez la description de l'image ici

Exemple

#include<iostream>
using namespace std;

//利用冒泡排序进行升序排列
int main()
{
    
    
	int arr[] = {
    
     4,2,8,0,5,7,1,3,9 }, count, i, j, num;
	count = sizeof(arr) / sizeof(arr[0]);
	cout << "给出一组数:" << arr[0];
	for (i = 1; i < count; i++)
	{
    
    
		cout << ","<< arr[i];
	}
	cout << "\n对这组数进行升序排列" << endl;
	
	for (i = 0; i < count-1; i++)
	{
    
    
		for (j = 0; j < count-i-1; j++)
		{
    
    
			if (arr[j] > arr[j + 1])
			{
    
    
				num = arr[j+1];
				arr[j+1] = arr[j];
				arr[j] = num;
			}
		}
	}

	cout << "利用冒泡排序进行升序排列后:" << arr[0];
	for (i = 1; i < count; i++)
	{
    
    
		cout << "," << arr[i];
	}
	cout << "\n";
	system("pause");
	return 0;

}

Résultat de sortie
Insérez la description de l'image ici

(2) Tableau bidimensionnel

1.数据类型 数组名[ 行数 ] [ 列数 ]2.数据类型 数组名[ 行数 ] [ 列数 ] = {
    
     {
    
    数据1,数据2}{
    
    数据3,数据4} }3.数据类型 数组名[ 行数 ] [ 列数 ] = {
    
    数据1,数据2,数据3,数据4}4.数据类型 数组名[  ] [ 列数 ] = {
    
    数据1,数据2,数据3,数据4}

Le but du nom du tableau bidimensionnel:

  • Afficher la mémoire occupée par un tableau à deux dimensions

  • Obtenez la première adresse d'un tableau à deux dimensions

Exemple

#include<iostream>
using namespace std;

int main()
{
    
    
	int arr[2][3] = {
    
    
		{
    
    1,2,3},
		{
    
    4,5,6}
	};
	cout << "二维数组占用内存空间为:" << sizeof(arr) << endl;
	cout << "二维数组第一行占用内存为:" << sizeof(arr[0]) << endl;
	cout << "二维数组第一个元素占用内存为:" << sizeof(arr[0][0]) << endl;
	cout << "二维数组行数为:" << sizeof(arr) / sizeof(arr[0]) << endl;
	cout << "二维数组列数为:" << sizeof(arr[0]) / sizeof(arr[0][0]) << endl;
	cout << "二维数组首地址为:" << arr << endl;
	cout << "二维数组第一行首地址为" << arr[0] << endl;
	cout << "二维数组第一个元素首地址为:" << &arr[0][0] << endl;


	system("pause");
	return 0;

}

Résultat de sortie
Insérez la description de l'image ici

Deuxièmement, la fonction

Encapsulez un morceau de code fréquemment utilisé pour réduire le code répétitif
Un programme plus grand est généralement divisé en plusieurs blocs de programme, et chaque module réalise une fonction spécifique

1. La définition de la fonction:

  1. Type de valeur de retour

  2. Nom de la fonction

  3. liste de paramètres

  4. Instruction du corps de la fonction

  5. expression de retour

返回值类型  函数名(参数列表)
{
    
    
	函数体语句
		
	return表达式	
}

Insérez la description de l'image ici

2. Appel de fonction

函数名(参数);

Les parenthèses dans la définition de la fonction sont appelées paramètres formels et les paramètres transmis lorsque la fonction est appelée sont appelés paramètres réels.

Exemple

#include<iostream>
using namespace std;

//求和
int add(int num1, int num2)
{
    
    
	int sum = num1 + num2;
	return sum;
}
int main()
{
    
    
	int a = 10;
	int b = 20;
	int c = add(a, b);
	cout << "a = " << a << endl;
	cout << "b = " << b << endl;
	cout << "c = " << c << endl;

	system("pause");
	return 0;

}

Résultat de sortie
Insérez la description de l'image ici

3. Transfert de valeur

Le soi-disant transfert de valeur est que le paramètre réel transmet la valeur au paramètre formel lorsque la fonction est appelée

Lorsque la valeur est transmise, si le paramètre formel se produit, cela n'affectera pas le paramètre réel

Si la fonction n'a pas besoin de renvoyer une valeur, vous pouvez écrire void lors de sa déclaration

Exemple

#include<iostream>
using namespace std;

//交换两值
void swap(int num1, int num2)
{
    
    
	cout << "交换前:" << num1 << " " << num2 << endl;
	int temp = num1;
	num1 = num2;
	num2 = temp;
	cout << "交换后:" << num1 << " " << num2 << endl;
}

int main()
{
    
    
	int a = 10;
	int b = 20;
	cout << "调用函数前:a = " << a << " b = " << b << endl;
	swap(a, b);
	cout << "调用函数后:a = " << a << " b = " << b << endl;

	system("pause");
	return 0;
}

Résultat de sortie
Insérez la description de l'image ici

4. Styles de fonctions courants

  1. Pas de participation, pas de retour

  2. Participation sans retour

  3. Retour sans participation

  4. Participez et revenez

Exemple

#include<iostream>
using namespace std;

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

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

//3、无参有返
int test03()
{
    
    
	int flag = 1;
	return flag;
}

//4、有参有返
int test04(int num1, int num2)
{
    
    
	int sum = num1 + num2;
	return sum;
}

int main()
{
    
    
	test01();
	int a = 10;
	test02(a);
	int b = test03();
	cout << "this is test03 b = " << b << endl;
	int c = test04(a, b);
	cout << "this is test04 c = " << c << endl;

	system("pause");
	return 0;

}

Résultat de sortie
Insérez la description de l'image ici

5. Déclaration de fonction

Dites au compilateur le nom de la fonction et comment appeler la fonction, le corps réel de la fonction peut être défini séparément

La fonction peut être déclarée plusieurs fois, mais la fonction ne peut être définie qu'une seule fois

Exemple

#include<iostream>
using namespace std;

int add(int num1, int num2);
int main()
{
    
    
	int a = 10;
	int b = 20;
	int c = add(a, b);
	cout << "a = " << a << endl;
	cout << "b = " << b << endl;
	cout << "c = " << c << endl;

	system("pause");
	return 0;

}

int add(int num1, int num2)
{
    
    
	int sum = num1 + num2;
	return sum;
}

Résultat de sortie
Insérez la description de l'image ici

6. Écriture de sous-fichiers de fonctions

Il y a généralement 4 étapes pour écrire un fichier de fonction:

  1. Créez un fichier d'en-tête avec l'extension .h

  2. Créez un fichier source avec un suffixe de .cpp

  3. Ecrire la déclaration de fonction dans le fichier d'en-tête

  4. Ecrire la définition de la fonction dans le fichier source

Fichier d'en-tête.h

#include<iostream>
using namespace std;

void swap(int a, int b);

Function.cpp

#include"swap.h"

void swap(int a, int b)
{
    
    
	int temp = a;
	a = b;
	b = temp;
	cout << "a = " << a << endl;
	cout << "b = " << b << endl;
}

Le programme principal appelle .cpp

#include"swap.h"

void swap(int a, int b)
{
    
    
	int temp = a;
	a = b;
	b = temp;
	cout << "a = " << a << endl;
	cout << "b = " << b << endl;
}

[Note] Le cours d’apprentissage est le didacticiel C ++ du programme Dark Horse

Je suppose que tu aimes

Origine blog.csdn.net/qq_42616280/article/details/113029537
conseillé
Classement