Ir ao conteúdo

Posts recomendados

Postado

Olá. Preciso fazer o programa deste enunciado:

 

Faça um programa que leia 10 valores inteiros e os armazene em um vetor. Posteriormente informe o maior valor e o índice desse elemento (assuma que o usuário não irá informar valores repetidos). Por fim, informe o valor de todos os elementos com índice menor que o do elemento de valor máximo e também o valor de todos os elementos com índice maior que o do elemento  de valor máximo.

Ex.: Considere o seguinte vetor {2, 5, 9, 11, 3, 6, 8}

Valor máximo = 11, com índice = 3.

Elementos com índice menor que 3 são: 2, 5, 9.

Elementos com índice maior que 3 são: 3, 6, 8.

 

Não estou conseguindo entender como ponho a última parte (informar o valor dos elementos com índice menor e maior que o elemento de valor máximo). Meu programa está assim:

 

#include <stdio.h>

#define TAM 10 //

int main() {
    int valor[TAM], i, maior, posMaior, indmenor, indmaior;

    for (i = 0; i < TAM; i++) {
        printf("\nInforme o valor %i \n\n",i+1);
        scanf("%i", &valor);
    }

    maior    = valor[0];
    posMaior = 0;
    for (i = 1; i < TAM; i++) {
        if (valor > maior) {
            maior    = valor;
            posMaior = i;
        }
    }

    printf("\nOs valores sao: \n\n");
    for (i = 0; i < TAM; i++) {
        printf("%i ", valor);
    }

    printf("\nMaior valor: %i - posicao: %i", maior, posMaior+1);

    return 0;
}

  • Obrigado 1
Postado

@P1909     para postar seu código é melhor usar o botão   <>   que está lá na barra de ferramentas da janela de postar  pois senão seu código fica faltando alguns caracteres como os  [ i ] que sumiram do seu código ,  e seu código está bom falta só o final  que pode ser assim 

#include <stdio.h>
#include <conio.h>
#define TAM 10 //
int main() {
    int valor[TAM], i, maior, posMaior, indmenor, indmaior;

    for (i = 0; i < TAM; i++) {
        printf("Informe o valor %i ",i+1);
        scanf("%i", &valor[i]);
    }

    maior    = valor[0];
    posMaior = 0;
    for (i = 1; i < TAM; i++) {
        if (valor[i] > maior) {
            maior    = valor[i];
            posMaior = i;
        }
    }

    printf("\n\nOs valores sao: \n\n");
    for (i = 0; i < TAM; i++) {
        printf("%i ", valor[i]);
    }

    printf("\n\nMaior valor: %i - posicao: %d\n\n", maior, posMaior);
    printf("Todos Elementos Com Indice Menor Que O Maior Numero\n\n");
    for(i=0;i<posMaior;i++){
         printf("%d ",valor[i]);   
    }
    
    printf("\n\nTodos Elementos Com Indice Maior Que O Maior Numero\n\n");
    for(i=posMaior+1;i<10;i++){
         printf("%d ",valor[i]);   
    }
    printf("\n\n    Tecle !");
    getch();
    return 0;
} 

:

  • 5 anos depois...
Postado

Boa Noite!

 

Notei que suas mensagens são iguais

"Todos Elementos Com Indice Maior Que O Maior Numero"

Em 24/09/2018 às 05:12, devair1010 disse:
    printf("Todos Elementos Com Indice Menor Que O Maior Numero\n\n");
    for(i=0;i<posMaior;i++){
         printf("%d ",valor[i]);   
    }
    
    printf("\n\nTodos Elementos Com Indice Maior Que O Maior Numero\n\n");
    for(i=posMaior+1;i<10;i++){
         printf("%d ",valor[i]); 

 

Sigam a sugestão

Em 23/09/2018 às 18:49, P1909 disse:

Valor máximo = 11, com índice = 3.

Elementos com índice menor que 3 são: 2, 5, 9.

Elementos com índice maior que 3 são: 3, 6, 8.

 

Por exemplo

 

C'11 gcc'11.4

#include <stdio.h>
#define TAM 10
int main (void){
  int valor[TAM] ,
    i/* sendo contadora de laços */, 
    maior ,posMaior;
    
  for (i= 0; i<TAM; ++i) {
    printf("Informe o valor %i ",i+ 1);
    int c= scanf("%i",&valor[i]);
    if (c==EOF) return 1;
    }
  maior= valor[0];
  posMaior= 0;
  for (i= 0 ; i<TAM ; i++)
    if (valor[i]>maior) maior= valor[posMaior= i];
  putchar ('\n');
  printf ("%s%d%s%d%c","Valor máximo = ",maior,", com índice = ",posMaior,'\n');
  if (posMaior>0) {
    printf ("%s%d%s","Elementos com índices menor que ",posMaior," são: ");
    for (i= 0 ; i<posMaior ; ++i) {
      printf ("%d",valor[i]);
      printf ("%s",posMaior==i+ 1? "." : ", ");
      }
    putchar ('\n');
    }
  if (posMaior<TAM- 1) {
    printf ("%s%d%s","Elementos com índices maior que ",posMaior," são: ");
    for (i= posMaior+ 1; i<10 ; ++i) {
      printf ("%d",valor[i]);
      printf ("%s",10==i+ 1? "." : ", ");
      }
    }
  putchar ('\n');
  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...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!