Hola nuevamente yo jaja xD esta vez tengo otro programa en lenguaje c de tarea sobre matrices ya hice todo pero al querer usar la opcion 4 o Case 4: del programa me marca numeros negativos que no estan en la matriz, quisiera saber si me pueden ayudar a resolver ese pequeño detalle gracias:
Código (c) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int contra = 1997;
int pass, i, j, n, op, sum, may, g, h, k, f, aux, x, y, z, sumar, num;
int m[3][3];
int SUMA [3];
int MAYOR [3];
char palabra[20];
int faltan=3;
do {
printf ("\nIngrese la contraseña: ");
scanf ("%d",&pass);
if (pass == contra)
{
do {
printf ("\nDe que tamaño va ser la matriz, no mayor a 3: ");
scanf ("%d",&n);
if (n<=3){
for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
{
do
{
printf ("\nIngrese el elemento de la Fila %d, columna %d ", i, j);
scanf ("%d", &num);
if (num > 0)
m[i][j] = num;
else
printf ("El numero deber ser positivo");
}while (num < 0);
}
}
}
else
printf ("\n\nTiene que ser un elemento menor a 3");
} while (n>3);
for (g=0;g<n;g++)
{
for (h=0;h<n;h++)
printf ("%d\t", m[g][h]);
printf ("\n");
}
do
{
printf ("\nMenú\n");
printf ("1.- Calcular la suma de cada fila\n");
printf ("2.- Determinar el mayor elemento de cada columna\n");
printf ("3.- Sumar los elementos por encima de la diagonal principal\n");
printf ("4.- Ordenar el arreglo SUMA de mayor a menor y el artreglo MAYOR de menor a mayor\n");
printf ("5.- Introduzca una palabra para determinar si es palindromo\n");
printf ("6.- Salir\n");
printf ("\nSeleccion una opción: ");
scanf ("%d", &op);
switch (op)
{
default: printf ("\nOPCIÓN NO DENTRO DE LOS PARAMETROS");
case 1:
for (i=0;i<n;i++)
{
sum = 0;
for (j=0;j<n;j++)
{
sum = sum + m[i][j];
}
SUMA[i]=sum;
}
printf ("La suma de cada fila es:\n ");
for (k=0;k<n;k++)
printf ("%d\n", SUMA[k]);
break;
case 2:
for (j=0;j<n;j++)
{
may = 0;
for (i=0;i<n;i++)
{
if (m[i][j] > may)
may = m[i][j];
}
MAYOR[j] = may;
}
printf ("\nEl elemento mayor de cada columna es: \n");
for (k=0;k<n;k++)
printf ("%d\n", MAYOR[k]);
break;
case 3:
sumar = 0;
for (i=0;i<n;i++)
{
for (j=0;j<n-1;j++)
{
if (j == i)
sumar = sumar + m[i][j+1];
}
}
printf ("\nLa suma de los elementos es: %d\n", sumar);
break;
case 4:
for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
{
if (SUMA[j] <= SUMA[i])
{
aux = SUMA[i];
SUMA[i] = SUMA[j];
SUMA[j] = aux;
}
}
}
printf ("\nEl orden de la suma es: \n");
for (g=0;g<n;g++)
printf("%d\n",SUMA[g]);
for (h=0;h<n;h++)
{
for (k=0;k<n;k++)
{
if (MAYOR[k] >= MAYOR[h])
{
aux = MAYOR[h];
MAYOR[h] = MAYOR[k];
MAYOR[k] = aux;
}
}
}
printf ("\nEl orden de mayor es: ");
for (f=0;f<n;f++)
printf("%d\n",MAYOR[f]);
break;
case 5:
printf ("\nIngrese una Palabra: ");
scanf("%s", palabra);
x=strlen(palabra);
x=x-1;
for(y=0,z=x;y<=x/2;y++,z--)
if(palabra[y]==palabra[z])
{
printf("Es palindromo\n");
break;
}
else
{
printf("No es palindromo\n");
break;
}break;
case 6:
printf ("Integrantes:\n *Castillo Luis\n *Rodriguez Ronald\n *Moreno Jose Daniel\n");
op = 6;
}
}while (op != 6);
break;
}
else
printf ("\n\t\tContraseña Incorrecta");
faltan--;
}
while (faltan>0);
if(faltan==0)
printf("\n\n\tNumero de intentos maximos alcanzados hasta luego =D");
return 0;
}