Obter maior diferença entre 2 elementos consecutivos [RESOLVIDO]

1. Obter maior diferença entre 2 elementos consecutivos [RESOLVIDO]

Jeferson
Deis

(usa Ubuntu)

Enviado em 24/11/2012 - 22:59h

Olá pessoal. Sou iniciante em programação C e tenho que entregar um exercicio para nota que pede obter a maior diferença entre 2 elementos consecutivos.

Exemplo:

Elabore um programa que dado uma seguência númerica de N elementos armazenados num vertor, reais e positivos, obter a maior diferença entre dois elementos consecutivos deste vetor.

|18| |15| |10| |03|

18-15=3

15-10=5

10-3=7

A maior direfença é= 7

Preciso de um programa que o usuario ira digitar 1º a quantidade de vetores (exemplo 4) e depois digitar numeros números: 10 8 4 2; ai o programa vai verificar e imprimir qual é maior diferença. Que seria 4. Por que 8-4=4

Um exemplo para usar como parametro.

O codigo fonte abaixo foi feito No Windows7 IDE Code Blocks:

#include<stdio.h>
#include<conio.h>
main()
{
int n=10,vetor[n],x,maior=-999999,posicao;
printf("Digite a Quantidade de Elementos do Vetor: ");
scanf("%d",&n);
for(x=0;x<n;x=x+1)
{
printf("\nDigite um Numero para a Posicao %d: ",x+1);
scanf("%d",&vetor[x]);
}
for(x=0;x<n;x=x+1)
{
if(vetor[x]>maior)
{
maior=vetor[x];
posicao=x;
}
}
printf("\n\n O Maior Valor e %d",maior);
printf("\n\n Esta na Posicao %d",posicao+1);
getch();

}

O codigo fonte abaixo foi feito no Linux IDE Geany

#include<stdio.h>

int main()
{
int n=10,vetor[n],x,maior=-999999,posicao;
printf("Digite a Quantidade de Elementos do Vetor: ");
scanf("%d",&n);
for(x=0;x<n;x=x+1)
{
printf("\nDigite um Numero para a Posicao %d: ",x+1);
scanf("%d",&vetor[x]);
}
for(x=0;x<n;x=x+1)
{
if(vetor[x]>maior)
{
maior=vetor[x];
posicao=x;
}
}
printf("\n\n O Maior Valor e %d",maior);
printf("\n\n Esta na Posicao %d",posicao+1);
getchar();

}


  


2. MELHOR RESPOSTA

Perfil removido
removido

(usa Nenhuma)

Enviado em 25/11/2012 - 13:25h

Em todos os exemplos aquele código funcionaria, porque 18-15=3, 15-10=5, 10-8=2..
agora 3 5 7..

3-5 = -2 opa, número negativo, mas depois eu vi o módulo entre os números no exemplo heheh

Acho que agora vai


#include <stdio.h>
#include <stdlib.h>

int main()
{

int n, x, maior = 0, value = 0;
//ponteiro que vai apontar para uma posição de memória, agora ele não aponta para nada ~ NULL
int *vetor = NULL;

printf("Digite a Quantidade de Elementos do Vetor: ");
scanf("%d", &n);

//aloca a quantidade de memória necessária, conforme o usuário forneceu e retorna o endereço para o ponteiro vetor
vetor = malloc(sizeof(int) * n);

for(x=0; x < n; x++)
{
printf("\nDigite um Numero para a Posicao %d: ",x+1);
scanf("%d",&vetor[x]);
}

for(x=0; x+1 != n; x++)
{
value = vetor[x] - vetor[x+1];

//modulo
if(value < 0 )
value *= -1;

if(value > maior)
maior = value;
}

printf("\n\n A maior diferença e %d\n\n", maior);
free(vetor);
}


3. Re: Obter maior diferença entre 2 elementos consecutivos [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 25/11/2012 - 03:41h

[code]
#include <stdio.h>
#include <stdlib.h>

int main()
{

int n, x, maior = 0, posicao = 0, posicao2 = 0;
int *vetor = NULL;

printf("Digite a Quantidade de Elementos do Vetor: ");
scanf("%d",&n);

vetor = malloc(sizeof(int) * n);

for(x=0;x<n;x++)
{
printf("\nDigite um Numero para a Posicao %d: ",x+1);
scanf("%d",&vetor[x]);
}

for(x=0;x<n;x++)
{
if( x+1 > n) break;
if(vetor[x] - vetor[x+1] > maior)
{
maior=vetor[x] - vetor[x+1];
posicao = x+1; //indice
posicao2 = x+2;
}
}

printf("\n\n A maior diferença e %d",maior);
printf("\n\n Esta na entre a posicao %d - %d", posicao, posicao2 );
free(vetor);
}



4. Re: Obter maior diferença entre 2 elementos consecutivos [RESOLVIDO]

Jeferson
Deis

(usa Ubuntu)

Enviado em 25/11/2012 - 12:26h

Ola leolfm; obrigado por tentar me ajudar.

Compilei o seu codigo fonte no Linux Ubuntu pela IDE Geany e não deu certo:

Digite um Numero para a Posicao 1: 3

Digite um Numero para a Posicao 2: 5

Digite um Numero para a Posicao 3: 7


A maior diferença e 0

Esta na entre a posicao 0 - 0

------------------
(program exited with code: 0)
Press return to continue

E uma informação:

No caso desse exercicio, não é necessário colocar a posição em que se encontra a maior diferença.


5. Re: Obter maior diferença entre 2 elementos consecutivos [RESOLVIDO]

Jeferson
Deis

(usa Ubuntu)

Enviado em 25/11/2012 - 13:51h

Um detale.

Nos aprendemos na escola até agora esses comandos:

if, else, vetor e for

Se o exercicio tiver essa expressões: break, int *vetor = NULL, malloc(sizeof o professor vai saber que foi eu que fiz.

Embora o professor não saiba ensinar de modo correto a gente precisa tirar nota.

Ele é péssimo para ensinar. A apostila de exercicio que ele usa foi tudo tirado da internet. E ele se gaba da apostila. Mas a classe já sabe que não foi ele que elaborou as perguntas e fez os codigos fontes. Tudo foi copiado da internet. 80% da classe passa dificuldade. Os 20% que consegue já estão no ramo.


6. Re: Obter maior diferença entre 2 elementos consecutivos [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 25/11/2012 - 13:58h

Deis escreveu:

Um detale.

Nos aprendemos na escola até agora esses comandos:

if, else, vetor e for

Se o exercicio tiver essa expressões: break, int *vetor = NULL, malloc(sizeof o professor vai saber que foi eu que fiz.

Embora o professor não saiba ensinar de modo correto a gente precisa tirar nota.

Ele é péssimo para ensinar. A apostila de exercicio que ele usa foi tudo tirado da internet. E ele se gaba da apostila. Mas a classe já sabe que não foi ele que elaborou as perguntas e fez os codigos fontes. Tudo foi copiado da internet. 80% da classe passa dificuldade. Os 20% que consegue já estão no ramo.


Eu editei o código no post anterior para tentar explicar o que esses códigos fazem para não ficar colando toda hora (tirei o break).
Meio difícil a sua situação, mas acho que uma desculpa boa seria que tu curtiu tanto C que começou a estudar por conta própria :-P
E também a lógica já foi dada, tenta adaptar aos teus conhecimentos.

Para tirar o *vetor e o malloc, não podemos pedir ao usuário definir o tamanho do vetor em tempo de execução, o valor teria que ser fixo e definido pelo programador


7. Re: Obter maior diferença entre 2 elementos consecutivos [RESOLVIDO]

Jeferson
Deis

(usa Ubuntu)

Enviado em 25/11/2012 - 14:12h

Obrigado leolfm.

É verdade; eu gostei bastante da linguagem C estou tentando aprender por conta. Pois em 6 meses so ficamos no if,else,for,vetor. Enrola muito o professor.

Mas agradeço a você pela disposição em ajudar.

Mas eu vou ficar sem entregar o exercicio. Creio que não vou reprovar. Estou com média boa nesta matéria.


8. Re: Obter maior diferença entre 2 elementos consecutivos [RESOLVIDO]

Jeferson
Deis

(usa Ubuntu)

Enviado em 25/11/2012 - 14:26h

Você fez algum curso; é autodidata em programação C?

Você poderia me dar um norte para eu me desenvolver na linguagem C?

Sair dando tiro para todos os lados é meio complicado.

Tendo uma pessoa que oriente por onde começar e mostre o melhor caminho, fica mais fácil.


9. Re: Obter maior diferença entre 2 elementos consecutivos [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 25/11/2012 - 14:40h

Deis escreveu:

Você fez algum curso; é autodidata em programação C?

Você poderia me dar um norte para eu me desenvolver na linguagem C?

Sair dando tiro para todos os lados é meio complicado.

Tendo uma pessoa que oriente por onde começar e mostre o melhor caminho, fica mais fácil.


Autodidata, acho que o essencial é saber o básico dessa linguagem, mas compreendendo o potencial dela.

Essa apostila é um bom começo http://va.mu/an4F, ela vai te apresentar os horizontes da linguagem C,
para depois tu ter uma base de pesquisa para estudar mais.

(Marque o tópico como resolvido depois)


10. Re: Obter maior diferença entre 2 elementos consecutivos [RESOLVIDO]

Jeferson
Deis

(usa Ubuntu)

Enviado em 25/11/2012 - 14:53h

Você poderia me mandar por e-mail esta apostila?

No site que você me indicou eu creio que não esta mais disponivel para download:


Not Found



The requested URL was not found on this server.

Servage.net Clustered Webhosting running enhanced Apache Webserver


11. Re: Obter maior diferença entre 2 elementos consecutivos [RESOLVIDO]

12. Re: Obter maior diferença entre 2 elementos consecutivos [RESOLVIDO]


01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts