我的一个朋友正在开始他的编程/C++ 之旅,所以我告诉他玩循环和数组。
他制作了一个简单的控制台程序来读取整数并计算平均值。
#include "stdafx.h"
#include <iostream>
#include <math.h>
using namespace std;
int largeurTab;
int nombre;
int affNombre = 1;
int tableau [] = {nombre};
float moyenne;
int _tmain(int argc, _TCHAR* argv[])
{
//Saisi de la largeur du tableau
cout << "Veuillez saisir la largeur desire pour le tableau!" << endl << "Largeur : ";
cin >> largeurTab;
//Saisi des nombres du tableau
for (int i = 0; i < largeurTab; i++)
{
cout << endl << "Nombre " << affNombre << endl;
cin >> nombre;
tableau [i] = nombre;
affNombre += 1;
}
//Affichage * pour ligne séparation
for (int i = 0; i < 45; i++)
{
cout << "*";
}
cout << endl << "Voici le(s) nombre(s) que vous avez saisi :" << endl;
affNombre = 1;
//Affichage des nombres du tableau
for (int i = 0; i < largeurTab; i++)
{
cout << endl << "Nombre " << affNombre << endl << tableau[i] << endl << endl;
moyenne += tableau[i];
affNombre += 1;
}
//Affichage * pour ligne séparation
for (int i = 0; i < 45; i++)
{
cout << "*";
}
//Affichage et calcul de la moyenne des nombres saisi dans le tableau
cout << endl << "La moyenne des nombres saisi est de : " << moyenne/largeurTab << endl;
system("PAUSE");
return 0;
}
我一直认为 C++ 数组是静态的,如果我想要动态的东西,我必须使用指针或向量等。发现这有点分享我的想法。
困扰我的部分是
int nombre;
int affNombre = 1;
int tableau [] = {nombre};
起初我以为因为 nombre 没有初始化,所以默认情况下它被设置为一个非常大的整数,所以他的数组有一个非常大的容量......但经过一些调试后我不太确定。
那么这是如何工作的呢?
编辑:我知道这是错误的。我知道他应该使用向量。但是这段代码是有效的。输出值有效。我只是想从技术上知道这件事是如何工作的。