Why is this showing 0? | Sololearn: Learn to code for FREE!
New course! Every coder should learn Generative AI!
Try a free lesson
+ 14

Why is this showing 0?

https://code.sololearn.com/czOjzX0LK14Y/?ref=app Why this showing 2 3 1 8 9 1 0 0 0 I can't got that why it this showing 0 0 0 Also if I put 5 or 6 on the place of 3 then it showing very weird output

23rd Jun 2020, 1:07 PM
Coder
Coder - avatar
25 Answers
+ 23
Coder Coder matrix is maded by matrix[n][m] transition where n is rows count and m is column count. In your question as you have declared 3 by 3 matrix and computing is perform only two rows as you have written only two rows and 3 columns. Why 0 is coming over 3 row all column as you have not used matrix 3rd row and that 3rd row is empty so in C++ empty thing return witj 0s. If you change the size of matrix to matrix[4][4] with same for loop than you will see 3rd and 4th rows filled with 0s So read only till that value which you have declared. and you delcared additionl rows than the matrix size like [3][3] matrix with for loop till 6 or 5 rows and columns than due to reading the memory which is not declared in the matrix rows and colum it will return you some garbage values. #include <iostream> using namespace std; int main() { int x[3][3]= {{2, 3, 4}, {8, 9, 1}}; for(int i =0;i<2;i++){ for(int j=0;j<3;j++){ cout << x[i][j]<<" "; } cout <<"\n"; } return 0; }
23rd Jun 2020, 1:43 PM
Preity
Preity - avatar
+ 19
Coder you see, it's giving you zeros and garbage values. It won't give you error but print zero or garbage value. I am not sure how that works but this is pretty much basic idea.
23rd Jun 2020, 1:12 PM
Raj Chhatrala
Raj Chhatrala - avatar
+ 17
Coder You have 2 rows and 3 colone you should have in value of i=2 not 3
23rd Jun 2020, 1:19 PM
Hmd(inactive)
+ 14
Theodora Amponfi you should learn and challenged every day
24th Jun 2020, 9:48 PM
Hmd(inactive)
+ 13
🔫 Rick Grimes bhaiaya ok then #include <iostream> using namespace std; int main() { int x[3][3]= {{2, 3, 4}, {8, 9, 1}}; for(int i =0;i<6;i++){ for(int j=0;j<6;j++){ cout << x[i][j]<<" "; } cout <<"\n"; } return 0; } Why I got a very weird output? if I just replace 6 with 3 it not giving any eror why?
23rd Jun 2020, 1:10 PM
Coder
Coder - avatar
+ 11
Because those values don't exist. It's depending on compiler that either it will show garbage value or 0 if you try to print something that is not initialized.
23rd Jun 2020, 1:09 PM
Raj Chhatrala
Raj Chhatrala - avatar
+ 11
🔫 Rick Grimes bhaiaya thanks it is just a garbage value 😁 Thank for the clarification Bhiaya 😁
23rd Jun 2020, 1:19 PM
Coder
Coder - avatar
+ 7
yeah Rico Edi Nabawi is right ... you must understand about memory and allocation/initialization for getting it .
23rd Jun 2020, 4:02 PM
Prashanth Kumar
Prashanth Kumar - avatar
+ 7
Array size is declared so memory is allocated and no values are initialized to the x[2][0], x[2][1], and x[2][2] hence it's value is 0.
24th Jun 2020, 9:35 PM
Ashwini Adsule
Ashwini Adsule - avatar
+ 7
You declared 3 arrays consisting of 3 values.But you defined only two arrays with 3 values in each.Using the for loop you tried to iterate over the third array.Actually there is no third array as you don't defined.But when you declare an array without defining it leads to store some zeros in the undefined declared array.So when you tried to literate over the undefined third array,it outputs the zeros that stored in it.
25th Jun 2020, 11:15 AM
Salmanul Faris
+ 4
Yeah because you has array with size of 3*3 so your 3rd column and rows are zero by default But when you put value more than 5 you will get garbage value because you didn't provide size more than 3
24th Jun 2020, 10:21 AM
Pragnenkumar Amadavadi
+ 3
Theodora Amponfi do not use others questions to chat in comment about something not related to question,if you have a specific question search for similar ones or post a new one in Q&A ,
24th Jun 2020, 10:50 PM
Abhay
Abhay - avatar
+ 3
Raphael Nworie your comment is not relevant to the discussion and is considered spam. Please remove. Thanks and happy coding
25th Jun 2020, 4:49 AM
BroFar
BroFar - avatar
+ 3
Himanshu Khatri your comments are irrelevant to the discussion and considered spam, please remove. Thanks and happy coding.
25th Jun 2020, 5:01 AM
BroFar
BroFar - avatar
+ 3
You have just 2 row and 3 columns not 3 row change 3 to 2 and it will work
28th Jun 2020, 11:06 AM
El Housyn Ait Khouya
El Housyn Ait Khouya - avatar
+ 2
Pls am in level 3 and i don't know how to continue
24th Jun 2020, 9:37 PM
Theodora Amponfi
Theodora Amponfi - avatar
+ 1
Coder you initial 2D array in 3 row and 3 column but you declare 2 row and 3 column, this is not problem. The problem is output formats. In output format you have to declare 2 row 3 column then it will make correct output... More details in google or sololearn... You cant change for loop value before you change array initial value and input more value... You have to understand.. Inputs==Outputs Input 3==Output 3 Input 5==Output 1,2,3,4,5 Input 4!=Output 5 and more I think you understand... example #include<iostearm> using namespace std; int main(){ int x[3][3]={{1,2,3},{3,2,1}} //fast for loop for row. for(int i=0;i<2;i++){ //2nd for loop for column. for(int j=0;i<3;j++){ cout<<x[i][j]<<" "; } cout<<endl; } return 0; }
25th Jun 2020, 1:01 AM
Aminul
Aminul - avatar
+ 1
You jst need to do one thing i.e you have to add a new row in the array That was showing you 0 0 0 jst because you haven't given the third row Kindly check the code below:- #include <iostream> using namespace std; int main() { int x[3][3]= {{2, 3, 4}, {8, 9, 1},{5,6,7}}; for(int i =0;i<3;i++){ for(int j=0;j<3;j++){ cout << x[i][j]<<" "; } cout <<"\n"; } return 0; }
25th Jun 2020, 2:53 AM
Vibhor Kulshreshtha
Vibhor Kulshreshtha - avatar
+ 1
Coder in simpler way when we creatr a array and initialise in starting with some numbere and some number remain blank then those number goes to array and blank position write 0 on array as we some example; If we create an array Int a[3][3]; Then retrieve data then value is get garbage value If we initialise 1. Int a[3][3]={{1,2,3},{456},}; this will see third row is set all zero see another example in this 2.Int a[3][3]={};//initialise array with 0 When retrieve data all value is set 0 But why because of empty space or block is like a null or nothing and nothing and null is represent 0 in computer or mathematics I hope u get the point
25th Jun 2020, 3:08 AM
Noman
Noman - avatar
+ 1
alshami ali تعليقك غير ذي صلة بالمناقشة. بريد مؤذي. يرجى الإزالة.
25th Jun 2020, 5:05 AM
BroFar
BroFar - avatar