Página 1 de 1

Programa em C

Enviado: 19 Jun 2020, 21:34
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;
}

Re: Programa em C

Enviado: 19 Jun 2020, 22:55
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