Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>//Para srand() y rand()
- #include <time.h>//para time()
- #define n 9 //Define las filas de la matriz
- #define m 5 //Define las columnas de la matriz, estas podrian ser establecidas por el usuario pero este no es la finalidad del programa
- void caida(int ma[n][m]);
- void llenar(int ma[n][m]);
- void mostrar(int ma[n][m]);
- int main(){//hecho en media hora, que buen fin de semana
- int ma[n][m];
- llenar(ma);
- printf("Esta es la matriz original\n");
- mostrar(ma);//Main se ve pequeño al ~~abusar~~ usar funciones
- caida(ma);
- printf("DONE");
- return(0);
- }
- void llenar(int ma[n][m]){//Genera la matriz con numero pseudo aleatrios
- int i,k;
- srand(time(0));//Semilla para rand
- for(i=0;i<n;i++){
- for(k=0;k<m;k++){
- ma[i][k]=rand()%10;//Se generan numeros de 0 a 9 por motivos de espacio;no importa que estos se repitan
- }
- }
- return;
- }
- void mostrar(int ma[n][m]){//Imprime la matriz ingresada
- int i,k;
- printf(" ");
- for(k=0;k<m;k++){//Numera las columnas
- printf("%d ",k);
- }
- for(i=0;i<n;i++){
- printf("\n%d ",i);//numera las filas
- for(k=0;k<m;k++){
- printf(" [%d]",ma[i][k]);//imprime los valores
- }
- }
- printf("\n");
- return;
- }
- void caida(int ma[n][m]){//Hace efecto caida en la matriz ingresada en la fila selecionada
- int i,k,fila=-1;
- while(fila<0 || fila>n){//Para evitar errores ,overflows y excepciones
- printf("\nIngrese el numero de fila a eliminar\n");
- scanf("%d",&fila);
- if (fila<0 || fila>n){
- printf("Valor invalido, ingrese un numero mayor o igual a 0 y menor que %d",n);
- }
- }
- printf("Limpiar la fila %d\n",fila);
- for(k=0;k<m;k++){
- ma[fila][k]=0;//Reemplazar todos los valores de la fila elegida por 0s
- }
- mostrar(ma);
- printf("Efecto caida y limpiar la primera fila\n");
- for (i=fila;i>0;i--){
- for(k=0;k<m;k++){
- 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
- if(i==1){
- ma[i-1][k]=0;//Reemplazar los valores de la primera fila por 0s
- }
- }
- }
- mostrar(ma);
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment