//Hola este es un proyecto en el que llevo mucho tiempo la idea de esto es que el usuario introduzca numero de reglones columnas para 2 matrices y el programa verifique que sean iguales para poder sumas ambas matrices el programa ya hace todo eso solo la única falla ya para terminarlo es que introduciendo los valores si por accidente se mete un carácter este programa lo tiene que volver a pedir y ese es mi único error no se como validar dentro de un arreglo si alguien pudiera asesorarme este es mi código en C
//matrices 1.4
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
int main ()
{
//declaraciones//
int ren,ren2,col,col2;
int x,y,x2,y2;
int true;
int w;
inicio:
printf("\n INTRODUCE UNA MATRIZ DE X*Y\n\nREGLAS DE EJECUSION:\n\n*En renglones y columnas no se permiten numero NEGATIVOS\n\n Ni cualquier tipo de CARACTER\n\n*Las filas y las columnas deben de coincidir para realizar la suma\n\n De lo contrario se solicitaran nuevamente \n\n");
do
{
printf("\n\n***introduce los valores de la primer matriz***\n\n ");
//validacion
while (true) {
fflush (stdin);
printf("Introduce los renglones-->");
scanf("%d",&x);
if (x < 0 ) continue;
else break;
}
while (true) {
fflush (stdin);
printf("introduce las columnas-->");
scanf("%d",&y);
if (y < 0 ) continue;
else break;
}
while (true) {
fflush (stdin);
printf("\n\n***Introduce los datos de la segunda matriz***\n\n");
printf("Introduce los renglones-->");
scanf("%d",&x2);
if (x2 < 0 ) continue;
else break;
}
while (true) {
fflush (stdin);
printf("introduce las columnas-->");
scanf("%d",&y2);
if (y2 < 0 ) continue;
else break;
}
}while (x!=x2||y!=y2);
//proceso
printf("\n\nprimer matriz\n\n");
int numeros [x][y];
for (ren=1;ren<=x;ren++)
{
for(col=1;col<=y;col++)
{
printf("teclee el valor [%d] [%d]: ",ren,col);
scanf("%d",& numeros [ren] [col] );
}
}
printf("La matriz introducida es:\n\n",ren,col);
for (ren=1;ren<=x;ren++)
{
for(col=1;col<=y;col++)
{
printf("%5d", numeros [ren] [col] );
}
printf("\n");
}
//segunda
int numero [x2] [y2] ;
for (ren2=1;ren2<=x2;ren2++)
{
for(col2=1;col2<=y2;col2++)
{
printf("teclee el valor [%d] [%d]: ",ren2,col2);
scanf("%d",& numero [ren2] [col2] );
}
}
printf("La matriz introducida es:\n\n",ren2,col2);
for (ren2=1;ren2<=x2;ren2++)
{
for(col2=1;col2<=y2;col2++)
{
printf("%5d", numero [ren2] [col2] );
}
printf("\n");
}
//suma
printf("\n");
printf( "\n******La suma de las dos matrices es******\n\n");
int m3 [x] [y];
for (ren=1;ren<=x;ren++)
{
for(col=1;col<=y;col++)
{
printf("%5d",m3 [ren] [col] =numero [ren] [col]+numeros[ren] [col]);
}
printf("\n");
}
printf("desea realizar un nuevo calculo?? \n\n\nprecione 1 para nuevo calculo 2 para salir\n\n\n");
scanf("%i",&w);
if (w==1){
system("cls");
goto inicio;
}
else {
getchar ();
fflush(stdin);
}
}