我给你的文件编译得很好并且运行但是一旦在屏幕上绘制了«乘法表»,我得到消息«中断命令»并且我的阅读停止。
如果我不使用«void table()«这个函数(这就是我以前做的那样),程序没有被中断,但是一旦程序完成,我得到一条消息告诉我堆栈有困难。我想使用函数(名为«void table()»)来运行我的文件,就像现在一样。
我认为有一些行要添加到我的文件中,以便停止中断。非常感谢您的帮助。我应该很高兴得到一个结果。现在这是我的档案:
/*essai.cpp*/
#include <iostream>
#include <vector>
using namespace std;
bool oui_ou_non() //sous-programme ou "fonction".Suivant votre réponse son data contiendra votre "return" qui est "true" ou "false"
{
cout << "Oui ou non ? o/n ? ";
char rep=0;
cin >> rep;
switch (rep)
{
case 'o':
return true;
case 'n':
return false;
default:
cout << "Je prends celà pour un non.\n";
return false;
}
}
void table()
{
int array[ 9 ][ 9 ]; // Declares an array that looks like a chessboard
for ( int i = 1; i < 10; i++ )
{
for ( int j = 1; j < 10; j++ )
{
array[ i ][ j ] = i * j; // Set each element to a value
}
}
cout << "Multiplication table:\n";
for ( int i = 1; i < 10; i++ )
{
for ( int j = 1; j < 10; j++ )
{
cout << array[ i ][ j ] <<" ";
}
cout << "\n";
}
}
//voici deux fonctionss (sous-programmes) où il n'y a aucun return, d'où l'utilisation de void
void sprog1()
{
cout << "premier sous-programme (function) où l'on fait qu'imprimer d'où l'utilisation du type void\n";
}
void sprog2()
{
cout << "Bon courage, continuez. \n";
}
int main()
{
cout << "Bonjour\n";
sprog1();
sprog2();
sprog1();
sprog2();
cout << "Voulez-vous lancer le programme ?\n";
bool return_from_function = oui_ou_non(); //dans l'adresse de return_from_function(que vous venez de créer), mettez l'adresse de oui_ou_non
//les adresses return_from_function et de oui_ou_non contiennent le même data
cout << oui_ou_non<<endl;
cout << return_from_function<<endl;
cout << "nous sommes revenus au programme principal\n";
if ( return_from_function == false ) //si l'adresse de return_from_function contient "false"
{
cout << "retourné false . Le programme va s'arrêter.\n";
return 0;
} //
cout << "Programme principal\n";
cout << "ARRAYS\n";
char p[]="Zero";
p[0]='R';
for ( int i(0); i<4; ++i)
{
cout << p[i];
}
cout <<endl;
int v5[8]={11,12,13,14,15,16,17,18,};
for(int i(0); i<8; ++i)
{
cout << v5[i] <<" ";
}
cout <<endl;
cout << "Tapez ENTER pour continuer";
cin.ignore();
cin.get();
cout << "MULTIDIMENTIONNAL ARRAY\n";
cout << "Tapez ENTER pour continuer";
cin.get();
table();
cout << "VECTORS, a resizable array\n";
// N'oubliez pas #include <vector> là-haut
vector<int> a_vector(10);
cout << "avant l'ajout\n";
for ( int i=0; i<10; i++ )
{
a_vector[ i ] = 0;
cout << a_vector[i] <<" ";
}
cout << endl;
//add anew element to the vector
a_vector.push_back(10);
cout << "après l'ajout\n";
for ( int i=0; i<11; i++ )
{
cout << a_vector[i] <<" ";
}
cout <<endl;
cout << "Tapez ENTER pour continuer";
cin.get();
cout <<"Aurevoir\n";
}
答案 0 :(得分:2)
你的错误在这里:
int array[ 9 ][ 9 ]; // Declares an array that looks like a chessboard for ( int i = 1; i < 10; i++ ) { for ( int j = 1; j < 10; j++ )
你的数组在每个维度中有9个元素。因此,有效索引为0到8. 不 1到9.计数从零开始。