Java - e porian ayudar a convertirlo a java porfavor

 
Vista:

e porian ayudar a convertirlo a java porfavor

Publicado por maria (1 intervención) el 14/01/2021 23:25:59
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include <stdio.h>
#define MAX 5   /* Define la dimension de la matriz */
 
void show(int matrix[][MAX]);
void llenar_esperilicamente(int matrix[][MAX]);
 
int main(int argc, char *argv[]) {
    int matrix[MAX][MAX];
 
    llenar_esperilicamente(matrix);
    show(matrix);
 
    return 0;
}
 
void show(int matrix[][MAX]) {
    /* imprime la matriz recibida por parametro en la pantalla */
    int i, j;
 
    for(i = 0; i < MAX; i++) {
        for(j = 0; j < MAX; j++) {
            printf("%4d", matrix[i][j]);
        }
        printf("\n");
    }
}
 
void llenar_esperilicamente(int matrix[][MAX]) {
    /* Llena la matriz del parametro desde adentro hacia afuera */
    int i, j;
    int count = 1;
    int aux;
 
    if(MAX % 2 != 0) {
        aux = MAX/2; /* se comienza en el punto central de la matriz */
        for(i = 0; i < MAX/2+1; i++) {
            for(j = aux+i ; j > aux-(2+i); j--){
                if(count==MAX*MAX+1){break;}
                matrix[aux-i][j] = count;
                count++;
            }
            if(count == MAX*MAX+1){ break; }
            for(j = aux-(1+i); j < aux+i; j++) {
                matrix[j+2][aux-(1+i)] = count;
                count++;
            }
            for(j = aux-(1+i); j < aux+(1+i); j++) {
                matrix[aux+(1+i)][j+1] = count;
                count++;
            }
            for(j = aux+i; j > aux-(1+i); j--){
                matrix[j][aux+(1+i)] = count;
                count++;
            }
        }
    }else {
        aux = MAX/2 - 1; /* se comienza en el punto central de la matriz */
        for(i = 0; i < MAX/2+1; i++) {
            for(j = aux-i ; j < aux+(2+i); j++) {
                matrix[aux+(1+i)][j] = count;
                count++;
            }
            for(j = aux+i; j >aux-(1+i); j--) {
                matrix[j][aux+(1+i)] = count;
                count++;
            }
            for(j = aux+i; j > aux-(2+i); j--) {
                if(count == MAX*MAX+1) { break; }
                matrix[aux-i][j] = count;
                count++;
            }
            if(count == MAX*MAX+1){ break; }
            for(j=aux-(1+i);j<aux+i;j++) {
                matrix[j+2][aux-(1+i)] = count;
                count++;
            }
        }
    }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-1
Responder
Imágen de perfil de Billy Joel
Val: 2.640
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

e porian ayudar a convertirlo a java porfavor

Publicado por Billy Joel (777 intervenciones) el 15/01/2021 16:39:31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
public class Maria_C2Java {
 
    public static final int MAX = 5;
 
    public static void main(String[] argv[]) {
        int[][] matrix = new int[MAX][MAX];
        llenar_esperilicamente(matrix);
        show(matrix);
    }
 
    static void show(int[][] matrix) {
        /* imprime la matriz recibida por parametro en la pantalla */
        int i, j;
        for (i = 0; i < MAX; i++) {
            for (j = 0; j < MAX; j++) {
                System.out.printf("%4d", matrix[i][j]);
            }
            System.out.printf("\n");
        }
    }
 
    static void llenar_esperilicamente(int[][] matrix) {
        /* Llena la matriz del parametro desde adentro hacia afuera */
        int i, j;
        int count = 1;
        int aux;
        if (MAX % 2 != 0) {
            aux = MAX / 2;
            /* se comienza en el punto central de la matriz */
            for (i = 0; i < MAX / 2 + 1; i++) {
                for (j = aux + i; j > aux - (2 + i); j--) {
                    if (count == MAX * MAX + 1) {
                        break;
                    }
                    matrix[aux - i][j] = count;
                    count++;
                }
                if (count == MAX * MAX + 1) {
                    break;
                }
                for (j = aux - (1 + i); j < aux + i; j++) {
                    matrix[j + 2][aux - (1 + i)] = count;
                    count++;
                }
                for (j = aux - (1 + i); j < aux + (1 + i); j++) {
                    matrix[aux + (1 + i)][j + 1] = count;
                    count++;
                }
                for (j = aux + i; j > aux - (1 + i); j--) {
                    matrix[j][aux + (1 + i)] = count;
                    count++;
                }
            }
        } else {
            aux = MAX / 2 - 1;
            /* se comienza en el punto central de la matriz */
            for (i = 0; i < MAX / 2 + 1; i++) {
                for (j = aux - i; j < aux + (2 + i); j++) {
                    matrix[aux + (1 + i)][j] = count;
                    count++;
                }
                for (j = aux + i; j > aux - (1 + i); j--) {
                    matrix[j][aux + (1 + i)] = count;
                    count++;
                }
                for (j = aux + i; j > aux - (2 + i); j--) {
                    if (count == MAX * MAX + 1) {
                        break;
                    }
                    matrix[aux - i][j] = count;
                    count++;
                }
                if (count == MAX * MAX + 1) {
                    break;
                }
                for (j = aux - (1 + i); j < aux + i; j++) {
                    matrix[j + 2][aux - (1 + i)] = count;
                    count++;
                }
            }
        }
    }
}

Saludos,
Billy Joel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar