Ache o erro em cada um dos seguintes trechos de códigos. (Nota: pode haver mais de um erro.)
a) For ( x = 100, x >= 1, x++ )
printf( “%d\n”, x );
b) O código a seguir deveria imprimir se determinado
inteiro é ímpar ou par:
switch ( valor % 2 ) {
case 0:
printf( “Inteiro par\n” );
case 1:
printf( “Inteiro ímpar\n” );
}
c) O código a seguir deveria ler um inteiro e um caractere e imprimi-los. Suponha que o usuário digite
100 A.
scanf( “%d”, &intVal );
charVal = getchar();
printf( “Inteiro: %d\nCaractere: %c\n”,
intVal, charVal );
d) for ( x = .000001; x == .0001; x += .000001
) {
printf( “%.7f\n”, x );
}
e) O código a seguir deveria exibir os inteiros ímpares
de 999 a 1:
for ( x = 999; x >= 1; x += 2 ) {
printf( “%d\n”, x );
}
f) O código a seguir deveria exibir os inteiros pares de
2 a 100:
contador = 2;
Do {
if ( contador % 2 == 0 ) {
printf( “%d\n”, contador );
}
contador += 2;
} While ( contador
g) O código a seguir deveria somar os inteiros de 100 a
150 (supondo que total seja inicializado com 0):
for ( x = 100; x
total += x;
}
Passo 1
Saalve, tranquilo?
Vamos lá programar?!
Passo 2
a) os erros no programa estão destacados em azul
O código contém três erros na mesma linha (linha 1) que são os seguintes:
1. Na linha 1 do código a palavra-chave for não está escrita certa. Já que na linguagem C é bem sensível, precisamos escrever for minúsculo.
2. O segundo erro na linha 1 do código é a falha de ter separado cada condição por vírgula ( , ) e não por ponto e vírgula ( ; ).
3. Na linha 1 o terceiro erro é o uso do operador de pós incremento “ ”. Dentro do loop o valor para x é inicializado em 100 e deve ir até 1, o que não é possível com o operador de pós incremento. Para o valor de x diminuir até 1 o operador de decremento deve ser usado como “ "
Agora o código depois de todos os erros corrigidos:
Passo 3
b) os erros no programa são basicamente duas afirmações que estão faltando
Lista de erros no código:
1. A afirmação que está faltando nesse programa é que depois das linhas 4 e 6 deveria ter um comando para sair do loop ou mudar para o próximo caso.
Agora o código depois de todos os erros corrigidos:
Passo 4
c) o erro no programa é um comando que está faltando
Lista de erros no código:
1. Para imprimir o inteiro e o caractere na saída, o código deveria ler o valor do caractere. Então o código precisa de um scanf() para o valor do caractere depois da linha 1 e deveria ter outro scanf() que consiga ler o valor do caractere.
Agora o código depois de todos os erros corrigidos:
Passo 5
d) os erros no programa estão destacados em azul:
Lista de erros no código:
1. Na linha 1 do código tem um número de ponto flutuante. Números de ponto flutuante nunca são designados ou nunca são comparados com operadores devido a sua imprecisão. Então uma variável inteira como operador deve ser usado no loop. O uso de operadores causa um problema de imprecisão, que causa um loop infinito.
Agora o código depois de todos os erros corrigidos:
Passo 6
e) os erros no programa estão destacados em azul:
Lista de erros no código:
1. Os erros estão na linha 1 do código. Nós precisamos imprimir os números inteiros ímpares de 999 até 1 e como vamos diminuindo os termos de 999 até 1 então a terceira condição na linha 1 do for deveria ser . Um operador de atribuição de subtração deve ser usado em vez de um operador de atribuição de adição
Agora o código depois de todos os erros corrigidos:
Passo 7
f) os erros no programa estão destacados em azul:
Lista de erros no código:
1. Na linha 1 do código o valor da variável conter não foi inicializado por qualquer palavra chave de tipo. No código, valores inteiros vão ser impressos na saída então a inicialização deve ser feita. Para corrigir o código na linha 1 a palavra-chave int deve ser colocada antes do valor do counter.
2. Na linha 2 do código o comando Do deveria estar em minúsculo.
3. Na linha 7 do código o comando While deveria estar em minúsculo. Já que o valor do counter precisa ser impresso até 100, no loop do while o valor deve ser menor ou igual
Agora o código depois de todos os erros corrigidos:
Passo 8
g) os erros no programa estão destacados em azul:
Lista de erros no código:
1. Tem somente um erro na linha 1 do código. O comando for não deveria terminar com ponto e vírgula ( ; ), que deve ser removido
Agora o código depois de todos os erros corrigidos:
Resposta
Ei, a resposta está no passo a passo :)