• Sábado 14 de Diciembre de 2024, 22:39

Autor Tema:  eliminar posicion de arreglo bidimencional  (Leído 1149 veces)

apocaliptica100

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
eliminar posicion de arreglo bidimencional
« en: Viernes 6 de Mayo de 2011, 02:43 »
0
ola a todos pues nesesito su ayuda o asesoria para que me digan de como puedo eliminar una posision de un arreglo bidimencional por ejemplo si kiero eliminar los pares de un arreglo por ejemplo
2 5 6
1 9 8
y lugo aparese una lista de los numeros a eliminar que en este caso serian los pares
2 6 8
jeugo se crea otro arreglo bidimencional con los numeros no eliminados
5 1
9  0<---- el cero por que sobraria una posicion
espero que me puedan ayudar con eso y si no es todo pues tansolo que alguen me explique como se elimina una posiscion
aki dejare el codigo que llevo echo
Código: C++
  1.  
  2. #include<stdio.h>
  3. #include<conio.h>
  4. #include<stdlib.h>
  5. #include<time.h>
  6. int main()
  7. {
  8.     int x,y,n,m,i,j,l,s;
  9.     printf("ingrese cantidad de filas: ");
  10.     scanf("%d" ,&n);
  11.     printf("ingrese cantidad de columnas: ");
  12.     scanf("%d" ,&m);
  13.     system("cls");
  14.     int N[n][m];
  15.     srand(time(NULL)*1);
  16.     printf("ingerse rango 1: ");
  17.     scanf("%d" ,&y);
  18.     printf("ingerse rango 2: ");
  19.     scanf("%d" ,&x);
  20.     for(i=0;i<n;i++)
  21.     {
  22.          for(j=0;j<m;j++)
  23.          {
  24.              N[i][j]=((rand()%x)+y);
  25.               }
  26.               }
  27.     system("cls");
  28.     for(i=0;i<n;i++)
  29.     {
  30.        printf("n");
  31.          for(j=0;j<m;j++)
  32.          {
  33.              printf(" %d " ,N[i][j]);
  34.               }
  35.               }
  36.              
  37.               printf("nn1.eliminar paresn2.eliminar inparesn3.eliminar primosn4.eliminar perfectosnselecciona:  ");
  38.               scanf("%d",&l);
  39.               switch (l)
  40.               {
  41.                      case 1:
  42.                     for(i=0;i<n;i++)
  43.     {
  44.          for(j=0;j<m;j++)
  45.          {
  46.              if(N[i][j]%2==0)
  47.              {
  48.                        printf(" %d " ,N[i][j]);
  49.                              }
  50.               }
  51.               }
  52.                          
  53.                      break;
  54.                      case 2:
  55.                           for(i=0;i<n;i++)
  56.     {
  57.          for(j=0;j<m;j++)
  58.          {
  59.              if(N[i][j]%2==1)
  60.              {
  61.                        printf(" %d " ,N[i][j]);
  62.                              }
  63.               }
  64.               }
  65.                      break;
  66.                      case 3:
  67.     for(i=0;i<n;i++)
  68.     {
  69.          for(j=0;j<m;j++)
  70.          {
  71.     if(N[i][j] % 2 == 1)
  72.      {
  73.        
  74.                     printf(" %d " ,N[i][j]);          
  75.                                }}}
  76.                    
  77.                    
  78.                      break;
  79.                      case 4:
  80.    for(i=0;i<n;i++)
  81.     {
  82.          for(j=0;j<m;j++)
  83.          {
  84.                          switch(N[i][j])
  85.                          {
  86.                                         case 6:
  87.                                              printf(" %d " ,N[i][j]);
  88.                                              break;
  89.                                              case 28:
  90.                                              printf(" %d " ,N[i][j]);
  91.                                              break;
  92.                                              case 496:
  93.                                              printf(" %d " ,N[i][j]);
  94.                                              break;
  95.                                              case 8128:
  96.                                              printf(" %d " ,N[i][j]);
  97.                                              break;
  98.                                              case  33550336:
  99.                                              printf(" %d " ,N[i][j]);
  100.                                              break;
  101.          }}}
  102.                      break;
  103.                      }
  104.                
  105.          
  106.               getch();
  107.               return 0;
  108. }        
  109.  
  110.  

alexg88

  • Miembro activo
  • **
  • Mensajes: 37
    • Ver Perfil
Re: eliminar posicion de arreglo bidimencional
« Respuesta #1 en: Sábado 7 de Mayo de 2011, 18:06 »
0
Para eliminar una posición de un array la única manera en C es desplazar los elementos a la izquierda.

Otra cosa de tu código: no puedes crear arrays de tamaños variables como estás haciendo, me refiero a que pones int N[n][m],
eso da un error en tiempo de compilación.