ALGORITMOS E IMPLEMENTAÇÕESPrograma em C Tópico resolvido

Implementação de equações dentro da computação, programação e algoritmos.

Moderador: [ Moderadores TTB ]

Avatar do usuário
Autor do Tópico
fera
Junior
Mensagens: 17
Registrado em: Ter 02 Jun, 2020 17:53
Última visita: 29-03-21
Jun 2020 19 21:34

Programa em C

Mensagem não lida por fera »

Alguém poderia ajudar neste programa?

Crie um algoritmo/programa que leia vários valores e armazene-os em uma lista. A entrada de dados deve ser encerrada quando o usuário fornecer o valor 0 (zero). Em seguida o programa deve mostrar a lista em ordem inversa

O que fiz não está dando certo
#include <stdio.h>
#define MAX 500

int main(){
int n,i;
int vet[MAX];

printf("Digite um valor: ");
scanf("%d",&n);

while(n!=0){
vet[MAX]= n;
n++;

}
for(i = 0; i < n; i++){
scanf("%d", &vet);
}
printf("Ordem inversa: ");
for(i = n-1; i >= 0; i--){
printf("%d ",vet);
}
printf("\n");
return 0;
}



Resposta

:wink:

Avatar do usuário
Farinheiro
1 - Trainee
Mensagens: 54
Registrado em: Dom 31 Mai, 2020 12:23
Última visita: 26-11-21
Jun 2020 19 22:55

Re: Programa em C

Mensagem não lida por Farinheiro »

Um dos erros desse código é que você está guardando valor no índice 500 do array ( vet[MAX]=n; ), mas o array declarado vet[MAX] só armazena até o índice 499.

É sempre bom colocar um espaço maior no vetor, pois imagine a seguinte situação:

Em um código genérico escreve-se v[n+100]=10, dependendo do valor de n eu posso ultrapassar o espaço pré-definido no vetor.

No caso, se o número de valores dados for <=500, coloque um pouco a mais para segurança #define MAX 510.

Isso é muito importante, pois normalmente os códigos não são testados manualmente.

Código alternativo:

https://notepad.pw/code/j0wwix8k



Vendo farinha

Responder
  • Tópicos Semelhantes
    Respostas
    Exibições
    Última msg

Voltar para “ALGORITMOS E IMPLEMENTAÇÕES”