• Viernes 8 de Noviembre de 2024, 21:36

Autor Tema:  intercalacion triangulares matrices  (Leído 848 veces)

crocop

  • Nuevo Miembro
  • *
  • Mensajes: 22
    • Ver Perfil
intercalacion triangulares matrices
« en: Sábado 1 de Noviembre de 2008, 19:58 »
0
hola tengo un problema con la intercalacion de las triangulares inferior y superior de la diagonal secundaria

si tengo una matriz de 3*3
|0.0,0.1,0.2|
|1.0,1.1,1.2|                    
|2.0,2.1,2.2|   


la intercalacion seria asi:
 |2.2,1.2,0.2|        
 |2.1,1.1,0.1|
 |2.0,1.0,0.0|



         pero me queda asi:

             |2.2,2.1,0.2|        
             |1.2,1.1,1.0|
             |2.0,0.1,0.0|

aqui esta mi codigo agradesco aportes =)
Código: Text
  1.  
  2.  #include<stdio.h>
  3.  #include<conio.h>
  4.  #include<stdlib.h>
  5.  void ingrese(int m[10][10],int n);
  6.  void main()
  7.  {
  8.  int ma[10][10]={0},n=0;
  9.  clrscr();
  10.  printf("ingrese el tama¤o de la matriz n*nn");
  11.  scanf("%d",&n);
  12.  ingrese(ma,n);
  13.  getch();
  14.  }
  15.  void ingrese(int matriz[10][10],int n)
  16.  {
  17.  int mb[10][10]={0},f=0,c=0,m=0,l=0,x=30,y=4;
  18.  textcolor(GREEN);
  19.  randomize();
  20.  for(f=0;f<n;f++){
  21.      for(c=0;c<n;c++){
  22.         gotoxy(x,y);
  23.         matriz[f][c]=random(n+n);
  24.         cprintf(" %dn",matriz[f][c]);
  25.         x=x+11;}
  26.         y=y+2;
  27.         x=30;}
  28.  for(f=0,m=n-1;f<n;f++,m--){
  29.      for(c=0,l=n-1;c<n;c++,l--){
  30.      if(((f+c)<(n-1))&&((m+l)>(n-1))){
  31.      mb[m][l]=matriz[f][c];
  32.      }}}
  33.  
  34.      for(m=0,f=n-1;m<n;m++,f--){
  35.         for(l=0,c=n-1;l<n;l++,c--){
  36.         if(((m+l)<(n-1))&&((f+c)>(n-1))){
  37.         mb[m][l]=matriz[f][c];
  38.         }}}
  39.  
  40.         for(f=0,m=0;f<n;f++,m++){
  41.         for(c=0,l=0;c<n;c++,l++){
  42.         if((f+c)==(n-1)){
  43.         mb[m][l]=matriz[f][c];
  44.         }}}
  45.         textcolor(RED);
  46.         x=30;
  47.         y=16;
  48.         for(f=0;f<n;f++){
  49.         for(c=0;c<n;c++){
  50.         gotoxy(x,y);
  51.         cprintf(" %dn",mb[f][c]);
  52.         x=x+11;}
  53.         y=y+2;
  54.         x=30;}
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  }
  61.  
  62.