/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

NO me entra

 
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
Filzix



Registrado: 30 Oct 2007
Mensajes: 8

MensajePublicado: 10/11/2007 1:52 pm
Título: NO me entra

pues tengo el siguiente codigo y me entra en el case 1 , 2 y 5 pero en cambio en el 3 y 4 no.

Código:

#include <stdio.h>
#include <conio.h>

#define N 3
int main() {
    int A[N][N],B[N][N];
    int man,c,f,nmenu,detA,detB,opc;
   
do {
    do {
        clrscr();
        printf("#############################\n");
        printf("#  Calculo de Matrices 3x3  #\n");
        printf("#############################\n\n\n");
        printf("1. Introducir Parametros de la Matriz A.\n");
        printf("2. Introducir Parametros de la Matriz B.\n");
        printf("3. Calcular Determinante de A.\n");
        printf("4. Calcular Determinante de B.\n");
        printf("5. Salir.\n");
        printf("\n\n\nOpción?\n");
        fflush( stdin );
        scanf("%d",&nmenu);
    } while((nmenu < 1) || (nmenu > 5));
   
    man=1;
   
    switch(nmenu) {
        case 1:             
             for(c=0;c<N;c++){
               for(f=0;f<N;f++){
                   clrscr();             
                   printf("Numero de la columna %d, fila %d:",c+1,f+1);
                   fflush( stdin );
                   scanf("%d",&A[c][f]);
               }               
             }             
        break;
        case 2:
                       
             for(c=0;c<N;c++){
               for(f=0;f<N;f++){
                   clrscr();             
                   printf("Numero de la columna %d, fila %d:",c+1,f+1);
                   fflush( stdin );
                   scanf("%d",&B[c][f]);
               }               
             }                         
        break;
        case 3:
             
             detA = (A[0][0]*A[1][1]*A[2][2])+(A[0][1]*A[1][2]*A[2][0])+(A[1][0]*A[2][1]*A[0][2]);
             detA -= (A[2][0]*A[1][1]*A[0][2])+(A[1][0]*A[0][1]*A[2][2])+(A[2][1]*A[1][2]*A[0][0]);
             printf("Determinante de A: %d",detA);
             
        break;
        case 4:
             
             detB = (B[0][0]*B[1][1]*B[2][2])+(B[0][1]*B[1][2]*B[2][0])+(B[1][0]*B[2][1]*B[0][2]);
             detB -= (B[2][0]*B[1][1]*B[0][2])+(B[1][0]*B[0][1]*B[2][2])+(B[2][1]*B[1][2]*B[0][0]);
             printf("Determinante de B: %d",detB);
             
        break;
        case 5:
             man = 0;
        break;
    }
}
while(man != 0);

return 0;
}
Volver arriba
digies



Registrado: 18 Nov 2005
Mensajes: 314
Ubicación: Cono Sur

MensajePublicado: 10/11/2007 4:56 pm
Título:

El código es un poco confuso. Por ejemplo no se entiende muy bien lo que quieres hacer en los bloques de los case's 3 y 4; pretendes hallar el determinante de una matriz sin antes haber ingresado sus datos. Deberías primero corregir ese error.

También, no tendrías problema alguno si utilizas las funciones que te provee el estándar de C, creo que esto sería lo mejor.

Un saludo
Volver arriba
Filzix



Registrado: 30 Oct 2007
Mensajes: 8

MensajePublicado: 10/11/2007 9:33 pm
Título:

ya pero aun introduciendo los datos no me entra en los case 3 y 4.

que funcion es para hallar el determinante?
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 3770
Ubicación: Mexico

MensajePublicado: 11/11/2007 7:29 am
Título:

El programa si ejecuta esos bloques de codigo, el problema es que no hay pausa alguna al final de las operaciones, sumale a eso que al presentar el menu limpias la pantalla ...

Para evitarlo coloca al final de los bloques "case 3:" y "case 4:" una sentencia "system("pause")" justo antes del break. Antes de utilizar la funcion system debes incluir el header <stdlib.h>.

Un saludo
_________________
The capacity to learn is a gift;
The ability to learn is a skill;
The willingness to learn is a choice.
--
Rebec of Ginaz


Ultima edición por rir3760 el 11/11/2007 8:27 am; editado 1 vez
Volver arriba
Filzix



Registrado: 30 Oct 2007
Mensajes: 8

MensajePublicado: 11/11/2007 8:14 am
Título:

bueno como todos los algoritmos que hago los ejecuto bajo el server de la Universidad que utiliza sistemas Linux y Solaris.

en la uni me dijeron que el getchar(); para la ejecucion, pero pongo un getchar y no pasa nada (y el system tampoco funciona). Hay alguna otra forma de pararlo?
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 3770
Ubicación: Mexico

MensajePublicado: 11/11/2007 8:25 am
Título:

En ese caso elimina el uso de conio y sus funciones ya que estas no forman del estandar de C y dudo mucho que tu compilador las soporte. Y si no las soporta la pantalla no deberia limpiarse y deberias ver el texto que presentan ambos bloques de codigo.

Lo mas cercano a una pausa en C estandar es procesar una linea de texto de la entrada estandar ya sea mediante el uso (repetido) de getchar o fgets.

Un saludo
_________________
The capacity to learn is a gift;
The ability to learn is a skill;
The willingness to learn is a choice.
--
Rebec of Ginaz
Volver arriba
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com