Código
Dev c++ Hola la cosa es la siguiente debo hacer el cubo magico de 3*3 usando numero aleatorios, sin que se repitan del 1 A 9 Tengo este codigo pero tengo problemas que solo me coje los mismo números no me los rota Mis numero 8 1 6 3 5 7 4 9 2 He visto otro orden 2 9 4 7 5 3 6 1 8 Como hago para que me den esos números en diferentes posiciones y suman 15 en filas , columnas y diagonales #include <stdio.h> #include"stdlib.h" #include"conio.h" #include"time.h" #include"iostream" int main() { int a[3][3]; int contador=0; int i; int j; int vi=0; int vj=0; int limite=3*3; int limitei=3-1; int limitej=3-1; int sum1=0,sum2=0,sum3=0,sum4=0,sum5=0,sum6=0,sum7=0,sum8=0; srand(time(NULL)); for( i=0;i<3;i++) { for( j=0;j<3;j++ ) { a[i][j]=1+rand()%(9); a[i][j]=0; } } i = 3/ 2; j = 0; for(contador=1;contador<=limite;contador++) { a[j][i] = contador; vi = i; vj = j; i++; if( i> limitei ) i = 0; j--; if( j < 0 ) j= limitej; if (a[j][i]>0) { i = vi; j = vj +1 ; } } printf("\n MATRIZ 3X3 \n"); for( i=0 ; i<3 ; i++) { for( j=0 ; j<3 ; j++ ) { printf(" %d ",a[i][j]); } printf(" \n"); } for(i=0;i<=2;i++) { for(j=0;j<=2;j++) { if(i==0) { sum1=sum1+a[i][j]; } if(i==1) { sum2=sum2+a[i][j]; } if(i==2) { sum3=sum3+a[i][j]; } if(j==0) { sum4=sum4+a[i][j]; } if(j==1) { sum5=sum5+a[i][j]; } if(j==2) { sum6=sum6+a[i][j]; } } } for(i=0;i<=2;i++) { for(j=0;j<=2;j++) { if(i==j) sum7=sum7+a[i][j]; if(i==2-j) sum8=sum8+a[i][j]; } } printf("\n\n"); printf("SUMA DE LAS FILAS \n\n"); printf("%d",sum1); printf("\n\n"); printf("%d",sum2); printf("\n\n"); printf("%d",sum3); printf("\n\n"); printf("*********************************************** \n"); printf("\n\n"); printf("SUMA DE LAS COLUMNAS \n\n"); printf("%d",sum4); printf("\n\n"); printf("%d",sum5); printf("\n\n"); printf("%d",sum6); printf("\n\n"); printf("*********************************************** \n"); printf("\n\n"); printf("SUMA DE LAS DIAGONALES \n\n"); printf("%d",sum7); printf("\n\n"); printf("%d",sum8); printf("\n\n"); }