Ir ao conteúdo

Posts recomendados

Postado

Alguém poderia me ajudar com essa o código está praticamente feito falta apenas uma correção.

 

Faça um programa que receba vários vetores e informe para cada um deles qual o maior elemento e o
índice (da primeira ocorrência) em que encontra-se tal elemento.
Entrada
O programa possui vários casos de testes. A primeira de cada caso contem um inteiro N, 1 < N ≤ 10000,
representando o tamanho do vetor. A segunda linha conterá N inteiros entre 0 e 1000, representando os N
elementos do vetor. A entrada termina quando N=0.
Saída
O programa gera N linhas de saída, com dois inteiros separados por um espaço em branco. O primeiro
inteiro é o índice da primeira ocorrência do maior elemento do vetor e o segundo inteiro é o maior valor do
vetor. Após a impressão de cada saída, inclusive a última, quebre uma linha.
Exemplo

Entrada

10
6 54 7 3 73 6 67 23 6 9
5
9 8 7 6 5
8
0 1 2 3 4 5 6 7
0

Saída

4 73
0 9
7 7

 

Código <- O erro é o seguinte se tiver o maior número no mesmo vetor ele imprime o índice dos outros também não apenas o primeiro

 

//Programa 05

 

#include <stdio.h>

#include <limits.h>

 

int main(){

    int n, vetor[1000], maior, menor, i, j, k, aux;

 

    maior = INT_MIN;

    

    aux = 1;

    

    while(aux > 0){

        scanf("%d", &n);

    

        for (i = 0; i < n; i++){

            scanf("%d", &vetor);

        }

        for (i = 0; i < n; ++i) {

            if (i == 0){

                maior = vetor;

            }else if(vetor > maior){

                maior = vetor;

            }

        }

        for (k = 0; k < n; k++)

        {

            if (maior == vetor[k])

            {

                printf("%d %d\n", k, maior);

            }

        }

        aux = n;

    }

}

  • Curtir 1
Postado
Citação
2 horas atrás, Eduardo_Braz disse:

Alguém poderia me ajudar com essa o código está praticamente feito falta apenas uma correção.

 

Faça um programa que receba vários vetores e informe para cada um deles qual o maior elemento e o
índice (da primeira ocorrência) em que encontra-se tal elemento.
Entrada
O programa possui vários casos de testes. A primeira de cada caso contem um inteiro N, 1 < N ≤ 10000,
representando o tamanho do vetor. A segunda linha conterá N inteiros entre 0 e 1000, representando os N
elementos do vetor. A entrada termina quando N=0.
Saída
O programa gera N linhas de saída, com dois inteiros separados por um espaço em branco. O primeiro
inteiro é o índice da primeira ocorrência do maior elemento do vetor e o segundo inteiro é o maior valor do
vetor. Após a impressão de cada saída, inclusive a última, quebre uma linha.
Exemplo

Entrada

10
6 54 7 3 73 6 67 23 6 9
5
9 8 7 6 5
8
0 1 2 3 4 5 6 7
0

Saída

4 73
0 9
7 7

 

Código <- O erro é o seguinte se tiver o maior número no mesmo vetor ele imprime o índice dos outros também não apenas o primeiro

 

//Programa 05

 

#include <stdio.h>

#include <limits.h>

 

int main(){

    int n, vetor[1000], maior, menor, i, j, k, aux;

 

    maior = INT_MIN;

    

    aux = 1;

    

    while(aux > 0){

        scanf("%d", &n);

    

        for (i = 0; i < n; i++){

            scanf("%d", &vetor);

        }

        for (i = 0; i < n; ++i) {

            if (i == 0){

                maior = vetor;

            }else if(vetor > maior){

                maior = vetor;

            }

        }

        for (k = 0; k < n; k++)

        {

            if (maior == vetor[k])

            {

                printf("%d %d\n", k, maior);

            }

        }

        aux = n;

    }

}

 

Atualizei o Código mais ainda tem um erro ele imprime se tiver um número igual o maior na primeira entrada ainda imprime ele é só isso pelo os teste que eu fiz

adicionado 1 minuto depois
2 horas atrás, Eduardo_Braz disse:

Alguém poderia me ajudar com essa o código está praticamente feito falta apenas uma correção.

 

Faça um programa que receba vários vetores e informe para cada um deles qual o maior elemento e o
índice (da primeira ocorrência) em que encontra-se tal elemento.
Entrada
O programa possui vários casos de testes. A primeira de cada caso contem um inteiro N, 1 < N ≤ 10000,
representando o tamanho do vetor. A segunda linha conterá N inteiros entre 0 e 1000, representando os N
elementos do vetor. A entrada termina quando N=0.
Saída
O programa gera N linhas de saída, com dois inteiros separados por um espaço em branco. O primeiro
inteiro é o índice da primeira ocorrência do maior elemento do vetor e o segundo inteiro é o maior valor do
vetor. Após a impressão de cada saída, inclusive a última, quebre uma linha.
Exemplo

Entrada

10
6 54 7 3 73 6 67 23 6 9
5
9 8 7 6 5
8
0 1 2 3 4 5 6 7
0

Saída

4 73
0 9
7 7

 

Código <- O erro é o seguinte se tiver o maior número no mesmo vetor ele imprime o índice dos outros também não apenas o primeiro

 

//Programa 05

 

#include <stdio.h>

#include <limits.h>

 

int main(){

    int n, vetor[1000], maior, menor, i, j, k, aux;

 

    maior = INT_MIN;

    

    aux = 1;

    

    while(aux > 0){

        scanf("%d", &n);

    

        for (i = 0; i < n; i++){

            scanf("%d", &vetor);

        }

        for (i = 0; i < n; ++i) {

            if (i == 0){

                maior = vetor;

            }else if(vetor > maior){

                maior = vetor;

            }

        }

        for (k = 0; k < n; k++)

        {

            if (maior == vetor[k])

            {

                printf("%d %d\n", k, maior);

            }

        }

        aux = n;

    }

}

Atualizei o Código mais ainda tem um erro ele imprime se tiver um número igual o maior na primeira entrada ainda imprime ele é só isso pelo os teste que eu fiz

Postado

Faz assim:

#include <stdio.h>
#include <limits.h>

// Quantidade máxima de elementos que o vetor pode conter
#define QUANTIDADE_MAXIMA 1000

typedef struct {
    int valor;
    int posicao;
} Elemento_t;

typedef struct {
    int tamanho;
    int vetor[QUANTIDADE_MAXIMA];
} Vetor_t;

void procurarMaior(Vetor_t vetor, char nome[]) {
    if (vetor.tamanho > QUANTIDADE_MAXIMA) {
        printf("[ E ]: O tamanho excede a capacidade máxima do vetor! \n");
        return;
    }

    Elemento_t maior = {INT_MIN, 0};

    for (int i = 0; i < vetor.tamanho; ++i) {
        if (vetor.vetor[i] > maior.valor) {
            maior.valor = vetor.vetor[i];
            maior.posicao = i;
        }
    }

    printf("%s: [ Posição: %2i | Valor: %5i ] \n", nome, maior.posicao, maior.valor);
}

int main() {
    Vetor_t vetor1 = {10, {10, 1, 2, 3, 4, 5, 6, 7, 8, 9}};
    Vetor_t vetor2 = {4, {3, 4, 5, 8}};
    Vetor_t vetor3 = {2, {0, 9}};

    procurarMaior(vetor1, "Vetor 1");
    procurarMaior(vetor2, "Vetor 2");
    procurarMaior(vetor3, "Vetor 3");

    return 0;
}

 

  • Obrigado 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 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!