Программа не выводит массив из функции, зависает, что не так
#include <iomanip>
#include<iostream>
void choos(int arr[24][10],int x,int y){
int c1[4][2];
int number,i,j;
number=1+rand()%7;
for (i=0;i<4;i++){for (j=0;i<2;j++){c1[i][j]={0};}}
switch(number){
case 1: for (i=0;i<4;i++){c1[i][1]={1};}
case 2: for (i=0;i<2;i++){
for (j=0;i<2;j++){c1[i][j]={2};}}
case 3: for (i=0;i<4;i++){c1[i][1]={3};}
c1[1][2]={3};
case 4: for (i=0;i<4;i++){c1[i][2]={4};}
c1[1][1]={4};
case 5: for (j=0;j<2;j++){c1[2][j]={5};}
c1[1][1]={5};
c1[3][2]={5};
case 6: for (j=0;j<2;j++){c1[2][j]={6};}
c1[1][2]={6};
c1[3][1]={6};
case 7: for(i=0;i<3;i++){c1[i][1]={1};}
c1[2][2]={3};
}
for(i=0;i<4;i++){for (j=4;i<6;j++){arr[i][j]=c1[i][j-4];}} }
int main(){
int array[24][10]={};
int i,j;
for (i=4;i<24;i++){
for (j=0;j<10;j++)
{std::cout<<std:: setw(2)<<std::right;
array[i][j]=0;
std::cout<<array[i][j];}
std::cout<<std::endl;
}
std::cout<<std::endl;
choos(array,24,10);
for (i=0;i<24;i++){
for (j=0;j<10;j++)
{std::cout<<std:: setw(2)<<std::right;
std::cout<<array[i][j];}
std::cout<<std::endl;
}
std::cout<<std::endl;
return 0;
}
Ответы (1 шт):
Автор решения: Zhihar
→ Ссылка
у вас бесконечный цикл с переполнением всего чего можно:
for (i=0;i<4;i++){for (j=0;i<2;j++){c1[i][j]={0};}}
вместо j вы написали i во вложенном for:
for (j=0;i<2;j++)
надо
for (i=0;i<4;i++){for (j=0;j<2;j++){c1[i][j]={0};}}
и в конце функции вы сделали ту же ошибку (копипаста?):
for (i = 0; i < 4; i++) { for (j = 4; i < 6; j++) { arr[i][j] = c1[i][j - 4]; } }
надо
for (i = 0; i < 4; i++) { for (j = 4; j < 6; j++) { arr[i][j] = c1[i][j - 4]; } }
P.S.
и вообще код в некоторых местах очень избыточный, к примеру зачем c1[2][2]={3}; вместо c1[2][2]=3;?