#include"stdlib.h"
#include"conio.h"
#include"time.h"
#include"iostream"
int main()
{
int i,j,opc,num,a,n,p=0;
printf("PROGRAMA MATRIZ CON MENU \n\n");
printf("Digite la cantidad de filas y columnas en la matriz (solo positivos) \n\n");
scanf("%d",&num);
int x[num][num];
int l=num+1;
srand(time(NULL));
if(num>0)
{
printf(" MENU \n\n");
printf("* Elija Una Opcion \n\n");
printf("1. Colocar cero en ambas diagonales de la matriz \n");
printf("2. Colocar cero en la primera y la última fila, y en la primera y la última columna de la matriz \n");
printf("3. Llenar de números la matriz de tal forma que mat[i][j] sea igual a i+j. \n");
printf("4. Llenar la diagonal principal de la matriz con los números 1,2,...N \n");
printf("5. Llenar todas las filas pares con los números 1,2,3,...N, y las filas impares con los números N,N-1,N-2,...1. \n");
printf("\n\n");
printf("La opcion escojida es la numero: \n");
scanf("%d",&opc);
printf("\n\n");
switch(opc)
{
case 1:
for(i=1;i<=num;i++)
{
for(j=1;j<=num;j++)
{
if(i==j)
{
x[i][j]=0;
}
else
if(i==l-j)
{
x[i][j]=0;
}
else
{
x[i][j]=1+rand()%(9);
}
}
}
for(i=1;i<=num;i++)
{
for(j=1;j<=num;j++)
{
printf("%d ",x[i][j]);
}
printf("\n");
}
break;
case 2:
for(i=1;i<=num;i++)
{
for(j=1;j<=num;j++)
{
if(i==1)
{
x[i][j]=0;
}
else
if(j==1)
{
x[i][j]=0;
}
else
if(i==num)
{
x[i][j]=0;
}
else
if(j==num)
{
x[i][j]=0;
}
else
{
x[i][j]=1+rand()%(9);
}
}
}
for(i=1;i<=num;i++)
{
for(j=1;j<=num;j++)
{
printf("%d ",x[i][j]);
}
printf("\n");
}
break;
case 3:
for(i=1;i<=num;i++)
{
printf("\n\n");
for(j=1;j<=num;j++)
{
x[i][j]=i+j;
printf(" %d ",x[i][j]);
}
}
break;
case 4:
for(i=1;i<=num;i++)
{
for(j=1;j<=num;j++)
{
if(i==j)
{
x[i][j]=0+j;
}
else
{
x[i][j]=1+rand()%(9);
}
}
}
for(i=1;i<=num;i++)
{
for(j=1;j<=num;j++)
{
printf("%d ",x[i][j]);
}
printf("\n");
}
break;
case 5:
for (i=1;i<=num;i++)
{
p=0;
a=1;
for(j=1;j<=num;j++)
{
if(i %2==0)
{
x[i][j]=a;
a++;
}
else
{
x[i][j]=num-p;
p++;
}
}
}
for(i=1;i<=num;i++)
{
for(j=1;j<=num;j++)
{
printf("%d",x[i][j]);
}
printf("\n");
}
break;
default:
printf("Opcion no valida");
break;
}
}
}
Mod: Los códigos deben ir en etiquetas GeSHi
esta mal amigo eso quedaria asi
#include"stdlib.h"
#include"conio.h"
#include"time.h"
#include"iostream"
#define NUM 50
int main()
{
int i,j,opc,num,a,n,p=0;
printf("PROGRAMA MATRIZ CON MENU \n\n");
printf("Digite la cantidad de filas y columnas en la matriz (solo positivos) \n\n");
scanf("%d",&num);
int x[NUM][NUM];
int l=num+1;
srand(time(NULL));
ETC..........
jajajjajaj ya no le sigo por que yo tambien e venido a este foro a pedir ayuda :)
Mod: Los códigos deben ir en etiquetas GeSHi, 3ra advertencia
Muy buen dia.
A opcion que te mostraron anteiormente es valida pero lo limita a una matriz de 50 x 50.
Tu linea
int x[num][num];
No es valida en tiempo de ejecucion. por que el compilador necesita saber a priori cuanta memoria reservar. De lo contrario tienes que usar memoria dinamica para ello.
int *x = calloc(num*num,sizeof(int));
Y el acceso a la matriz se debe de hacer de forma mas o menos asi.
y = x[fila*num+ columna];