Enunciado

Ache o(s) erro(s) em cada uma das seguintes instruções:

a) Considere: char str[ 5 ];

scanf( “%s”, str ); /* Usuário digita olá */

b) Considere: int a[ 3 ];

printf( “$d %d %d\n”, a[ 1 ], a[ 2 ], a[ 3 ] );

c) double f[ 3 ] = { 1.1, 10.01, 100.001, 1000.0001 };

d) Considere: double d[ 2 ][ 10 ]; d[ 1, 9 ] = 2.345;

Passo 1

Fala Galera!!! Mais um exercício para treinar e ficar craque em programação. Bora analisar cada alternativa.

Na letra a) nenhum erro encontrado, foi definido um array com 5 elementos e o usuário digitou o texto “olá”. Logo a instrução funciona corretamente.

Passo 2

Na letra b) contém um erro dentro do printf a forma como é especificado o primeiro parâmetro para imprimir o array está escrito errado. Está escrito “$d” e o correto seria “%d”.

Arrumando o erro fica da seguinte forma:

printf( “%d %d %d\n”, a[ 0 ], a[ 1 ], a[ 2 ] );

Passo 3

Na letra c) o número de valores atribuídos para o array é maior que a sua capacidade. Ou seja, o array possui tamanho 3 e a instrução está tentando atribuir 4 valores. Para corrigir é só eliminar um desses valores. Ficando:

double f[ 3 ] = { 1.1, 10.01, 100.01 };

Passo 4

Na letra d) a forma como está sendo especificados os elementos para receber o valor está errado. Para que os elementos [1] e [9] do array receba o valor a forma correta é:

d[ 1 ][ 9 ] = 2.345;

Prontinho Galera!!! Agora partiu para o próximo exercício!!!

Resposta

Ei, a resposta está no passo a passo :)