FrozenChen

Caida C

Apr 18th, 2017
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.23 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>//Para srand() y rand()
  3. #include <time.h>//para time()
  4. #define n 9 //Define las filas de la matriz
  5. #define m 5 //Define las columnas de la matriz, estas podrian ser establecidas por el usuario pero este no es la finalidad del programa
  6. void caida(int ma[n][m]);
  7. void llenar(int ma[n][m]);
  8. void mostrar(int ma[n][m]);
  9.  
  10. int main(){//hecho en media hora, que buen fin de semana
  11.    int ma[n][m];
  12.    llenar(ma);
  13.    printf("Esta es la matriz original\n");
  14.    mostrar(ma);//Main se ve pequeño al ~~abusar~~ usar funciones
  15.    caida(ma);
  16.    printf("DONE");
  17.    return(0);
  18. }
  19.  
  20. void llenar(int ma[n][m]){//Genera la matriz con numero pseudo aleatrios
  21.    int i,k;
  22.    srand(time(0));//Semilla para rand
  23.    for(i=0;i<n;i++){
  24.       for(k=0;k<m;k++){
  25.          ma[i][k]=rand()%10;//Se generan numeros de 0 a 9 por motivos de espacio;no importa que estos se repitan
  26.       }
  27.    }
  28.    return;
  29. }
  30.  
  31. void mostrar(int ma[n][m]){//Imprime la matriz ingresada
  32.    int i,k;
  33.    printf("    ");
  34.    for(k=0;k<m;k++){//Numera las columnas
  35.       printf("%d   ",k);
  36.    }
  37.    for(i=0;i<n;i++){
  38.      printf("\n%d ",i);//numera las filas
  39.      for(k=0;k<m;k++){
  40.         printf(" [%d]",ma[i][k]);//imprime los valores
  41.      }
  42.    }
  43.    printf("\n");
  44.    return;
  45. }
  46. void caida(int ma[n][m]){//Hace efecto caida en la matriz ingresada en la fila selecionada
  47.    int i,k,fila=-1;
  48.    while(fila<0 || fila>n){//Para evitar errores ,overflows y excepciones
  49.       printf("\nIngrese el numero de fila a eliminar\n");
  50.       scanf("%d",&fila);
  51.       if (fila<0 || fila>n){
  52.          printf("Valor invalido, ingrese un numero mayor o igual a 0 y menor que %d",n);
  53.       }
  54.    }
  55.    printf("Limpiar la fila %d\n",fila);
  56.    for(k=0;k<m;k++){
  57.       ma[fila][k]=0;//Reemplazar todos los valores de la fila elegida por 0s
  58.       }
  59.    mostrar(ma);
  60.    printf("Efecto caida y limpiar la primera fila\n");
  61.    for (i=fila;i>0;i--){
  62.       for(k=0;k<m;k++){
  63.          ma[i][k]=ma[i-1][k];//Efecto caida wiii, copiar los valores de la fila de arriba a la fila de abajo,esto sucede hasta a la primera fila
  64.          if(i==1){
  65.             ma[i-1][k]=0;//Reemplazar los valores de la primera fila por 0s
  66.          }
  67.       }
  68.    }
  69.    mostrar(ma);
  70.    return;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment