Ir ao conteúdo

Posts recomendados

Postado

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);
}

 

  • Curtir 1
Postado
#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
} 

 

Postado

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);

 

Postado

@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);
}

 

Postado

@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

Postado

@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;
}

 

Postado

@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!

 

 

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!