Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

faellinha_88

Ajuda com exercício em C++

Recommended Posts

Bom dia, tenho uma matéria de programação ma faculdade e estou com dúvidas sobre o exercício abaixo :

 

Construir um programa em C que le 10 números pelo teclado; armazena-os em um vetor de dez posições; depois, os exibe na tela, primeiro na ordem em que os números foram lidos e depois na ordem inversa.

 

O código está correto ?

 

#include <stdio.h>






int main()

{

int num[10];

int i;



for(i=0;i<10;i++)

{

printf ("Digite um numero: ", i);

scanf("%d",&num);

}

printf("O numero digitado foi: %d", numero);

printf ("Os numeros na ordem inversa sao:\n");
for(num=10;i>=0;i--)

{

printf ("%d\n", num);
}

return (0);
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não. Não exibe na ordem em que foram digitados e o for está com a inicialização errada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O primeiro for, que é o de captura dos números digitados esta correto.

O segundo está totalmente errado e iniciado de forma incorreta. No laço for você precisa definir a expressão de início, a expressão de condição e a operação que será realizada ao fim de cada loop, que pode ser de incremento ou decremento, nessa mesma ordem. Exemplo:

int inicio = 0, final = 10, i; /* 'i' será usado como contador.*/
for(i = inicio; i < final; i++){ 
    printf("%d\n", i);
}

No exemplo acima o laço for imprimirá todos números no intervalo de 0 à 9;

Tome isso como base e conseguirá resolver facilmente o problema.

Obs: a primeira expressão, no caso "i = inicio;" só é executada na primeira vez que o laço é executado, ou seja, quando o programa entrar no laço, irá atribuir à "i" o valor de "inicio", verificará se a condição é verdadeira, se sim, executará o "printf" e por fim incrementará o valor de "i", que de 0 passará a ser 1.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa parte abaixo, esta meio perdida, você nem chegou a declarar essa variável 'numero', portanto aconselho a rever a necessidade desse comando na região em que você colocou.

printf("O numero digitado foi: %d", numero);

Creio que o correto seria colocar o comando acima, dentro do loop depois de ter digitado o numero, usando a variavel num[], exemplo:

for(i=0;i<10;i++) { 
    printf("Digite um numero: ", i); 
    scanf("%d",&num[i]); 
    printf("\nO numero digitado foi: %d\n", num[i]);
} 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.