¿Que te parece esta solucion? ;)
Código C++:
Ver original#include <stdio.h>
#include <conio.h>
main() {
int num;
char resp;
int terminar,killb1,killb2;
printf(" Bienvenidos al programa AN_ T1T213 que resolvera 4 operaciones: \n\n" ); do {
terminar = killb1 = killb2 = 0; // inicialisamos los bucles a 0
printf("Seleccione la operacion que desea realizar \n\n"); printf("1- Factorial de un numero\n"); printf("2- Suma de elementos que no se encuentran en la diagonal principal de un matriz\n"); printf("3- Ecuacion de 2do grado aplicando la discriminante\n"); printf("4- Dividir polinomio con un binomio aplicando ruffini\n\n");
switch (num) {
case 1:
do {
int fact,i;
fact=1;
printf("Ingrese elemento del que desea el factorial \n"); for (i=1; i <=num; i++) {
fact = fact*i;
}
printf("El factorial de %d es %d\n\n",num
,fact
); printf ( "Deseas realizar un nuevo factorial?\n1-si\n0-no" ); killb1 = (( killb1 == 1 ) ? 0 : 1 );
} while( !killb1 );
break;
case 2:
do {
int A[5][5],n,m,i,j,acum,sum;
acum=0;
sum=0;
printf("Introducir las filas de la matriz: \n"); printf("Introducir las columnas de la matriz: \n");
for (i=1; i<=n; i++)
for (j=1; j<=m; j++) {
if (i==j) {
} else {
sum=sum+A[i][j];
}
}
printf("\nLa suma de los elementos que no se encuentran en la diagonal principal de la matriz %d x %d es = %d \n\n",n
,m
,sum
); printf ( "Deseas realizar una nueva suma?\n1-si\n0-no" ); killb2 = (( killb2 == 1 ) ? 0 : 1 );
} while( !killb2 );
break;
}
printf ( "Deseas hacer otra operacion?\n1-si\n0-no" ); terminar = (( terminar == 1 ) ? 0 : 1 );// si no es 0 es 1 ;), 0 sigue, 1 rompe el bucle ;)
} while( !terminar ); // si terminar no es verdadero fin.
}