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;
}
ALGORITMOS E IMPLEMENTAÇÕES ⇒ Programa em C Tópico resolvido
Moderador: [ Moderadores TTB ]
-
- Mensagens: 54
- Registrado em: Dom 31 Mai, 2020 12:23
- Última visita: 26-11-21
Jun 2020
19
22:55
Re: Programa em C
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
É 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
-
- Tópicos Semelhantes
- Respostas
- Exibições
- Última msg