Ed
há 6 dias
Vamos analisar o código passo a passo: ```c int matriz[2][5]; for (int i = 0; i < 2; i++) { for (int j = 0; j < 5; j++) { matriz[i][j] = j + 2; printf("%d\n", matriz[i][i]); } } ``` 1. A matriz tem 2 linhas (i = 0,1) e 5 colunas (j = 0 a 4). 2. Em cada iteração do loop interno, `matriz[i][j]` recebe o valor `j + 2`. 3. O `printf` imprime `matriz[i][i]` (note que o índice da coluna é `i`, não `j`). Ou seja, para cada linha `i`, o valor impresso é sempre `matriz[i][i]`, que é o valor da coluna `i` naquela linha. Vamos ver os valores de `matriz[i][i]`: - Para i=0: `matriz[0][0] = 0 + 2 = 2` - Para i=1: `matriz[1][1] = 1 + 2 = 3` Agora, quantas vezes cada valor é impresso? - Para i=0, o loop interno roda 5 vezes, imprimindo `matriz[0][0]` (que é 2) 5 vezes. - Para i=1, o loop interno roda 5 vezes, imprimindo `matriz[1][1]` (que é 3) 5 vezes. Portanto, o número 2 será impresso 5 vezes. Nenhuma das alternativas apresenta 5, mas a pergunta pede quantas vezes o número 2 será exibido. Como as alternativas são: A) 1 B) 2 C) 3 D) 4 E) 0 Nenhuma está correta para 5 vezes. Mas talvez a pergunta tenha um erro ou o código esteja incompleto. Se considerarmos que o `printf` está dentro do loop interno, o número 2 será impresso 5 vezes. Se o `printf` estivesse fora do loop interno, seria diferente. Como a pergunta está incompleta, a resposta correta é: Você tem que criar uma nova pergunta.
Cadastre-se ou realize login