Ask Question

Name:
Title:
Your Question:

Answer Question

Name:
Your Answer:
User Submitted Source Code!


Description:
  Matrix
Language: C/C++
Code:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int random (int N)
{
    return rand () %N;
}


int main()
{
int i , j, a, b, l;

do {
printf ("Zadayte razmer massiva a and b\n");
scanf ("%d%d", &a, &b);
} while (a<=0 && b<=0);
int **A = (int**) malloc(a*sizeof(int*));
     for (i=0; i<a; i++){
     A[i]=(int*) malloc (b*sizeof(int));}
int **B = (int**) malloc(a*sizeof(int*));
     for (i=0; i<a; i++){
     B[i]=(int*) malloc (b*sizeof(int));}

printf("Ok\n");
 int p;
   do {
printf ("Zapolnyem matricu avtomaticheski? 1 - Da, 0 - Net\n");
scanf ("%d" , &p);} while ( p <0 && p>1);
if (p) {
     for (i=0; i<a;i++){
          for (j=0; j<b; j++){
          A[i][j]= random (a*b); 
          printf (" %2d ", A[i][j]);
          }
          printf("\n");
}
} else {
printf ("Vnesite znacheniya matricy\n");     
     for (i=0; i<a; i++) {
          for (j=0; j<b; j++){
          scanf ("%d", &A[i][j]);}
     }
printf ("Matrica zapolnena\n");
     for (i=0; i<a; i++) {
          for (j=0; j<b; j++){
          printf (" %2d ", A[i][j]);}
     printf("\n");
     }
}

l=b;

for (i=0; i<a; i++){
     int c=1; 
          for (j=1; j<b; ){
          if (j%2 !=0) {
          l=l-c; printf ("print l,j %d %d\n", l, j);
          B[i][j]=A[i][l], j++, l=b;}
          else { l=l+c-l, c++, B[i][j]=A[i][l], j++, l=b; printf ("print l,j,c %d %d %d\n", l, j, c);}
          }
}

for (i=0; i<a; i++){
     for (j=1; j<b; j++) {
          A[i][j]=B[i][j];
          }
}


for (i=0; i<a;i++)
{
          for (j=0; j<b; j++)
          {
          printf (" %2d ", A[i][j]);
          }
          printf("\n");
}
for(i = 0; i < a; i++) {
        free(A[i]);
    }
    free(A);
for(i = 0; i < a; i++) {
        free(B[i]);
    }
    free(B);

getchar();   getchar();

    return 0;
}
     
Comments: