Ir ao conteúdo
  • Cadastre-se
CelsoJr001

Exercicios programaçao

Recommended Posts

Eae galera beleza? Estava tentando fazer um código que :

     Calcule e exiba a maior diferença entre dois elementos consecutivos de um vetor A, com N elementos. Deve-se ler o tamanho do vetor e seus elementos.Exemplo: A=[10,5,7,9,22,36,50] a maior diferença está em A[6]-A[5] = 14;

Se alguém puder ajudar. valeu

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

int main() {
    int i,n,maior=0,dif=0;
    scanf("%d",&n);
    int v[n];
    for(i=0;i<n;i++){
        scanf("%d",&v[i]);
    }
    for(i=0;i<n;i++){
        dif=v[i]-v[i+1];
        if(dif>maior || dif==0){
            maior=dif;
        }
    }
    printf("%d",dif);
    return (0);
}

 

Editado por CelsoJr001
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
#include <stdio.h>
#include <stdlib.h>

int main() {
    int i,n,maior=0,dif=0;
    scanf("%d",&n);
    int v[n]; // isso funciona mas nao se faz, o certo é o de baixo
  //int *v = (int*) malloc(n * sizeof(int));
    for(i=0;i<n;i++){
        scanf("%d",&v[i]); // faltou o [i]
    }
    for(i=1;i<n;i++){ // aqui é 1
        dif=v[i] - v[i-1]; // v[1] - v[0]
        if(dif>maior || dif==0){
            maior=dif;
        }
    }
    printf("%d",maior); // imprime o maior, não o dif
    return 0; // sem parenteses
} 

 

Editado por regex
codigo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tira isso

Citação

if(dif>maior || dif==0)

e deixa isso

Citação

if(dif>maior)

porque se a diferença for zero nao tem o porque de guardar o valor.

E na hora de imprimir é

Citação

printf("%d",maior);

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@MassakiMsk se puder dar uma olhada nesse codigo, ele ta dando um erro, nele preciso calcular o desvio padrão.

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

int main() {
    int i,n;
    float m=0,dp=0;
    scanf("%d",&n);
    int v[n];
    for(i=0;i<n;i++){
        scanf("%d",&v[i]);
        m=m+v[i];
    }
    m=m/n;
    for(i=0;i<n;i++){
        dp=dp+sqrt(abs(pow((v[i]-m),2)));
    }
    dp=dp/n;
    
    printf("%.2f",dp);
    
    
    return(0);
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@CelsoJr001 Por que o programa não sabe o valor de n até você digitar na hora de rodar o programa... E quando você manda rodar o programa ele pega esse N com lixo de memória e vai criar um array indefinido

 

quando você faz int vetor[NUMERO] ele aloca a memoria na hora que roda o programa.... então se o n tem 87237489743 como lixo voce está fazendo int v[87237489743]

 

deu pra entender? rs.. fica meio confuso

Compartilhar este post


Link para o post
Compartilhar em outros sites

@CelsoJr001 mesma coisa

 

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

int main() {
	int i, n;
	float m = 0, dp = 0;
	scanf("%d", &n);
	int *v = (int*)malloc(n * sizeof(int)); // aqui
	for (i = 0; i<n; i++) {
		scanf("%d", &v[i]);
		m = m + v[i];
	}
	m = m / n;
	for (i = 0; i<n; i++) {
		dp = dp + sqrt(abs((long) pow(v[i] - m, 2)));
	}
	dp = dp / n;

	printf("%.2f", dp);


	return 0;
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@regexO valeu cara. deu tudo certo, mais acho que o run.codes ta com casos de testes errados porque to jogando o codigo la e nao ta dando certo. vou falar com minha profº mais valeu pela ajuda!

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

2 horas atrás, regex disse:

@MassakiMsk não pode tirar não pois se tirar e o dif der negativo ele não vai salvar a diferença

 

 

Não entendi :P  poderia explicar por favor?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×