• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 484
  • Last Modified:

Creating two dimensional arrays

How would one go about creating a two dimensional array like this:
int randomeaten[300][7];
Basically I need 300  7 element arrays of numbers ranging from 2 to 10.
I suppose like this:

randomeaten[i][j] = (rand()%(11-2)+2), (rand()%(11-2)+2), (rand()%(11-2)+2), (rand()%(11-2)+2), (rand()%(11-2)+2), (rand()%(11-2)+2), (rand()%(11-2)+2);

But I'm having troubles making the for statement to create said two dimensional array.
Also, any suggestions on how I can print the array out as well would be greatly appreciated.
0
Tabris42
Asked:
Tabris42
1 Solution
 
AjarCommented:
Tabris ,
 
You can not allocate multible elements in a single go as you are doing .

Try to understand this sample code

=================================
#include <stdio.h>
int main(int argc,char * argv[])
{
 int randomeaten[300][7],i,j;
 //ASSIGNING
 for( i = 0; i < 300;i++) for(j = 0; j < 7;j++) randomeaten[i][j]=rand()%(11-2)+2);
 //Printing
 for( i = 0; i < 300;i++) for(j = 0; j < 7;j++) printf("randomeaten[%d][%d] = %d\n",i,j,randomeaten[i][j]);
}
======================================
0
 
Sys_ProgCommented:
What is your question about - allocating a two dimensional array OR assigning values in a two dimensional array

If your question is about creating/allocating a two dimensional array,

You can do it in 2 ways

Statically
int a[300][7] ;

Dynamicaaly
int **a ;
int i ;
a = ( int ** ) malloc ( sizeof ( int * ) * 300 ) ;
for ( i = 0 ; i < 300 ; i++ ) {
  a [i] = ( int * ) malloc ( sizeof ( int ) * 7 ) ;
}


The Dynamic approach would be better if the array dimensions are to be decided at run time. May be an input from the user


Regarding Assigning values into it
You would have to assign the value to each array location one at a time
Here's the code for it.
int i, j ;
for ( i = 0 ; i < 300 ; i ++ ) {
      for ( j = 0 l j < 7 ; j ++ ) {
           a[i][j] = ( rand ()  % ( 11 - 2 ) + 2 ) ;
      }
}

Printing
for ( i = 0 ; i < 300 ; i ++ ) {
      for ( j = 0 l j < 7 ; j ++ ) {
           printf ( "\na[%d][%d]  =  %d " i, j, a[i][j] ) ;
      }
}








0

Featured Post

Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now