Почему при выводе двумерного массива в C некоторые значения заменяют 0 и 1?
Почему в двумерном массиве int d[2][2] 2 элемента ([0][0]) и ([1][1]) отображаются корректно а вместо двух других ([0][1]) и ([1][0]) всегда ноль или единица?
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()//1 2 3 4 5 6 7 8
{
srand (time (NULL));
int a,j, d[1][1];
printf("write size of matrix: ");
scanf("%d",&a);
if((a != 1) && (a != 2) && (a != 3)&&(a != 4) &&(a != 5)&&(a != 6)&&(a != 7)&&(a != 8)){
printf("size of matrix should be from 1 to 8");
exit(0);
}
printf("enter 1 to fill manually or 2 to fill randomly: ");
scanf("%d",&j);
if(j!= 1 && j!= 2){
printf("you need to fill 1 or 2");
exit(0);
}
if(j == 1)
{
for (int i = 0; i < 2; i++){
for (int j = 0; j < 2; j++){
printf("[%d][%d]= ",i,j);
scanf("%d", &d[i][j]);
}}}
else{
for (int i = 0; i < 2; i++){
for (int j = 0; j < 2; j++){
d[i][j]=rand()%100;
}}}
printf("\The array:\n ");
for(int i=0; i<2; i++)
{
printf("\n|");
for(j=0; j<2; j++)
{
printf("%d ", d[i][j]);
}printf("|");}}
Спасибо за помощь.
Ответы (1 шт):
Автор решения: Qwertiy
→ Ссылка
Почему в двумерном массиве int d[2][2]
Потому что он не 2*2:
int a,j, d[1][1];