QUE TAL.
PUES BIEN NECESITO QUE MI PROGRAMA NO TERMINE HASTA QUE SE SELECCIONE LA OPCION, MIENTRAS NO SE SELECCIONE LA OPCION TIENE QUE REGRESAR HASTA EL PRINCIPIO; TIENE QUE LIMPIAR LA PANTALLA Y VOLVER A CORRER TODO Y ESO SERA HASTA QUE SE SELECCIONE LA OPCION SALIR.
QUIEN ME PUEDA AYUDAR MUCHAS GRACIAS! :)
#include <stdio.h>
#include <stdlib.h>
/*PROGRAMA QUE CREA UNA MATRIZ A Y UNA MATRIZ B; DA 4 OPCIONES: SUMAR, RESTAR (A - B), RESTAR (B - A) Y TERMINAR PROGRAMA*/
int main(int argc, char *argv[])
{
int x, y, matrizA[10][10], matrizB[10][10], matrizR[10][10], RA, CA, RB, CB, O;
printf("Cuantos renglones quiere que tenga la matriz A: ");
scanf("%i", &RA);
printf("\nCuantas columnas quiere que tenga la matriz A: ");
scanf("%i", &CA);
printf("\nCuantos renglones quiere que tenga la matriz B: ");
scanf("%i", &RB);
printf("\nCuantas columnas quiere que tenga la matriz B: ");
scanf("%i", &CB);
/*SE GENERA LA MATRIZ A*/
printf("\nMATRIZ A\n\n");
for (x=1; x<=RA; x++)
{
for (y=1; y<=CA; y++)
{
matrizA[x][y] = rand()%10;
printf("%i ", matrizA[x][y]);
}
printf("\n\n");
}
printf("\n");
/*SE GENERA LA MATRIZ B*/
printf("MATRIZ B\n\n");
for (x=1; x<=RB; x++)
{
for (y=1; y<=CB; y++)
{
matrizB[x][y] = rand()%10;
printf("%i ", matrizB[x][y]);
}
printf("\n\n");
}
/*SE ELIGE LA OPERACION*/
printf("1.-SUMA\n\n2.-RESTA (A - B)\n\n3.-RESTA (B - A)\n\n4.-TERMINAR APLICACION\n\n");
printf("QUE OPERACION DESEA REALIZAR: ");
scanf("%i", &O);
/*SE HACE LA OPERACION ELEGIDA*/
switch (O)
{
/*SUMA*/
case 1:
if (RA!=RB || CA!=CB)
{
printf("\nNO SE PUEDEN SUMAR MATRICES DE DISTINTO ORDEN\n\n");
break;
}
else
{
printf("\nMATRIZ RESULTANTE\n\n");
for (x=1; x<=RB; x++)
{
for (y=1; y<=CB; y++)
{
matrizR[x][y] = matrizA[x][y] + matrizB[x][y];
printf("%i ", matrizR[x][y]);
}
printf("\n\n");
}
break;
}
/*RESTA (A - B)*/
case 2:
if (RA!=RB || CA!=CB)
{
printf("\nNO SE PUEDEN RESTAR MATRICES DE DISTINTO ORDEN\n\n");
break;
}
else
{
printf("\nMATRIZ RESULTANTE\n\n");
for (x=1; x<=RB; x++)
{
for (y=1; y<=CB; y++)
{
matrizR[x][y] = matrizA[x][y] - matrizB[x][y];
printf("%i ", matrizR[x][y]);
}
printf("\n\n");
}
break;
}
/*RESTA (B - A)*/
case 3:
if (RA!=RB || CA!=CB)
{
printf("\nNO SE PUEDEN RESTAR MATRICES DE DISTINTO ORDEN\n\n");
break;
}
else
{
printf("\nMATRIZ RESULTANTE\n\n");
for (x=1; x<=RB; x++)
{
for (y=1; y<=CB; y++)
{
matrizR[x][y] = matrizB[x][y] - matrizA[x][y];
printf("%i ", matrizR[x][y]);
}
printf("\n\n");
}
break;
}
case 4:
system("PAUSE");
return 0;
break;
}
system("PAUSE");
return 0;
}
Amigo, no se entiende nada.
Primero, aflojá con las mayúsculas, no son necesarias.
Segundo, el código siempre dentro de las etiquetas GeSHi, por favor!
bueno para borrar pantalla se usa el
clrscr();
despues de que presiones un enter borraras pantalla
ahora para regresar al inicio creo que era
goto 0,0;
CitarMenudo desastre de código ;D ;D ;D.
A ver si era esto lo que querías:
REEDITO LOS INDICES A CERO
#include <stdio.h>
#include <stdlib.h>
/*PROGRAMA QUE CREA UNA MATRIZ A Y UNA MATRIZ B; DA 4 OPCIONES: SUMAR, RESTAR (A - B), RESTAR (B - A) Y TERMINAR PROGRAMA*/
int main(int argc, char *argv[])
{
int x, y, matrizA[10][10], matrizB[10][10], matrizR[10][10], RA, CA, RB, CB, O;
printf("Cuantas lineas quiere que tenga la matriz A: ");
scanf("%d", &RA);
printf("\nCuantas columnas quiere que tenga la matriz A: ");
scanf("%d", &CA);
printf("\nCuantas lineas quiere que tenga la matriz B: ");
scanf("%d", &RB);
printf("\nCuantas columnas quiere que tenga la matriz B: ");
scanf("%d", &CB);
/*SE GENERA LA MATRIZ A*/
for (x=0; x<RA; x++)
{
for (y=0; y<CA; y++)
{
matrizA[x][y] = rand()%10;
}
}
printf("\n");
/*SE GENERA LA MATRIZ B*/
for (x=0; x<RB; x++)
{
for (y=0; y<CB; y++)
{
matrizB[x][y] = rand()%10;
}
}
while (1){
system("pause");
system("cls");
printf("\nMATRIZ A\n\n");
for (x=0; x<RA; x++)
{
for (y=0; y<CA; y++)
{
printf("%d ", matrizA[x][y]);
}printf("\n");
printf("\n\n");
}
printf("MATRIZ B\n\n");
for (x=0; x<RB; x++)
{
for (y=0; y<CB; y++)
{
printf("%d ", matrizB[x][y]);
}printf("\n");
}
printf("\n\n");
/*SE ELIGE LA OPERACION*/
printf("1.-SUMA\n\n2.-RESTA (A - B)\n\n3.-RESTA (B - A)\n\n4.-TERMINAR APLICACION\n\n");
printf("QUE OPERACION DESEA REALIZAR: ");
scanf("%d", &O);
/*SE HACE LA OPERACION ELEGIDA*/
switch (O)
{
/*SUMA*/
case 1:
if (RA!=RB || CA!=CB)
{
printf("\nNO SE PUEDEN SUMAR MATRICES DE DISTINTO ORDEN\n\n");
break;
}
else
{
printf("\nMATRIZ RESULTANTE\n\n");
for (x=0; x<RB; x++)
{
for (y=0; y<CB; y++)
{
matrizR[x][y]=matrizA[x][y]+matrizB[x][y];
printf("%d ", matrizR[x][y]);
}printf("\n");
}
printf("\n\n");
break;
}
/*RESTA (A - B)*/
case 2:
if (RA!=RB || CA!=CB)
{
printf("\nNO SE PUEDEN RESTAR MATRICES DE DISTINTO ORDEN\n\n");
break;
}
else
{
printf("\nMATRIZ RESULTANTE\n\n");
for (x=0; x<RB; x++)
{
for (y=0; y<CB; y++)
{
matrizR[x][y]=matrizA[x][y]-matrizB[x][y];
printf("%d ", matrizR[x][y]);
}printf("\n");
}
printf("\n\n");
break;
}
/*RESTA (B - A)*/
case 3:
if (RA!=RB || CA!=CB)
{
printf("\nNO SE PUEDEN RESTAR MATRICES DE DISTINTO ORDEN\n\n");
break;
}
else
{
printf("\nMATRIZ RESULTANTE\n\n");
for (x=0; x<RB; x++)
{
for (y=0; y<CB; y++)
{
matrizR[x][y]=matrizB[x][y]-matrizA[x][y];
printf("%d ", matrizR[x][y]);
}printf("\n");
}
printf("\n\n");
break;
}
case 4:
system("pause");
return 0;
break;
}
}
return 0;
}
CitarAunque a mí me gusta más así:
Saludos!.#include <stdio.h>
#include <stdlib.h>
/*PROGRAMA QUE CREA UNA MATRIZ A Y UNA MATRIZ B; DA 4 OPCIONES: SUMAR, RESTAR (A - B), RESTAR (B - A) Y TERMINAR PROGRAMA*/
int main(int argc, char *argv[])
{
int x, y, matrizA[10][10], matrizB[10][10], matrizR[10][10], RA=0, CA=0, RB=1, CB=1, O;
while (RA!=RB || CA!=CB){
printf("Cuantas lineas quiere que tenga la matriz A: ");
scanf("%d", &RA);
printf("\nCuantas columnas quiere que tenga la matriz A: ");
scanf("%d", &CA);
printf("\nCuantas lineas quiere que tenga la matriz B: ");
scanf("%d", &RB);
printf("\nCuantas columnas quiere que tenga la matriz B: ");
scanf("%d", &CB);
if (RA!=RB || CA!=CB) printf ("Han de tener las mismas lineas y columnas\npara sumar o restar\n");
}
/*SE GENERA LA MATRIZ A*/
for (x=0; x<RA; x++)
{
for (y=0; y<CA; y++)
{
matrizA[x][y] = rand()%10;
}
}
printf("\n");
/*SE GENERA LA MATRIZ B*/
for (x=0; x<RB; x++)
{
for (y=0; y<CB; y++)
{
matrizB[x][y] = rand()%10;
}
}
while (1){
system("pause");
system("cls");
printf("\nMATRIZ A\n\n");
for (x=0; x<RA; x++)
{
for (y=0; y<CA; y++)
{
printf("%d ", matrizA[x][y]);
}printf("\n");
printf("\n\n");
}
printf("MATRIZ B\n\n");
for (x=0; x<RB; x++)
{
for (y=0; y<CB; y++)
{
printf("%d ", matrizB[x][y]);
}printf("\n");
}
printf("\n\n");
/*SE ELIGE LA OPERACION*/
printf("1.-SUMA\n\n2.-RESTA (A - B)\n\n3.-RESTA (B - A)\n\n4.-TERMINAR APLICACION\n\n");
printf("QUE OPERACION DESEA REALIZAR: ");
scanf("%d", &O);
/*SE HACE LA OPERACION ELEGIDA*/
switch (O)
{
/*SUMA*/
case 1:
printf("\nMATRIZ RESULTANTE\n\n");
for (x=0; x<RB; x++)
{
for (y=0; y<CB; y++)
{
matrizR[x][y]=matrizA[x][y]+matrizB[x][y];
printf("%d ", matrizR[x][y]);
}printf("\n");
}
printf("\n\n");
break;
/*RESTA (A - B)*/
case 2:
printf("\nMATRIZ RESULTANTE\n\n");
for (x=0; x<RB; x++)
{
for (y=0; y<CB; y++)
{
matrizR[x][y]=matrizA[x][y]-matrizB[x][y];
printf("%d ", matrizR[x][y]);
}printf("\n");
}
printf("\n\n");
break;
/*RESTA (B - A)*/
case 3:
printf("\nMATRIZ RESULTANTE\n\n");
for (x=0; x<RB; x++)
{
for (y=0; y<CB; y++)
{
matrizR[x][y]=matrizB[x][y]-matrizA[x][y];
printf("%d ", matrizR[x][y]);
}printf("\n");
}
printf("\n\n");
break;
case 4:
system("pause");
return 0;
break;
}
}
return 0;
}
1. Para que te borre la pantalla, te recomiendo que leas este enlace http://www.cplusplus.com/articles/4z18T05o/
2. Para que vuelva al inicio puedes hacer una llamada a la función main(), de esta manera: main(); ya que esta es la función principal.
Otro detalle a corregir: en C y C++ los indices van desde 0 hasta "N - 1" donde "N" es el numero de elementos en el array. Estos dos bucles y similares:
for (x=1; x<=RA; x++){
for (y=1; y<=CA; y++){
...
Hay que cambiarlos a:
for (x = 0; x < RA; x++){
for (y = 0; y < CA; y++){
...
Un saludo
CitarREEDITDO "maestro". Eso pasa por querer "aprovechar" lo ya hecho por otro y no estar al loro.
Saludos!. ..... y ¿qué pasa con el "otro" sitio?