• Matéria: Informática
  • Autor: AnotherTime
  • Perguntado 8 anos atrás

Linguagem C: Faça um programa que leia 30 valores do tipo inteiro e armazene-os em um vetor. A seguir, o programa deverá informar: (1) todos os números pares que existem no vetor; (2) o menor e o maior valor existente no vetor; (3) quantos dos valores do vetor são maiores que a média desses valores. Fiz ate a metade preciso do final onde estou errando


bokomoko: Ponha o programa no repl.it e mande o link para darmos uma olhada e ver o que está errado

Respostas

respondido por: bokomoko
1

#include <stdio.h>#include <stdlib.h>#include <string.h>#include <time.h>
#define LIMITE 30

void obtem_vetor( char *mensagem, int vetor[]){  char tecla;  printf("Quer digitar 30 valores ou quer que o computador o faça ? S/n");  scanf("%c",&tecla);  if ( tecla == "S") {      //  obten vetor do teclado     printf("%s \n",mensagem);     for( int l=0 ; l<LIMITE ; l++){         printf("Informe o elemento [%i] = ",l);       scanf("%i",&vetor[l]);      };  }  else {     for( int l=0 ; l< LIMITE ; l++){         vetor[l] = (rand() % 100)-30;      };       }  }
void exibe_vetor( char *mensagem, int vetor[], int limite) {  printf("\n %s \n",mensagem);  for (int i=0; i<limite;i++){    printf("Elemento [%i] = %i \n",i,vetor[i]);};};
void main() {int primeira[LIMITE];int menor = 9999;  // colocando um valor bem grande em menor vai dar True no primeiro loopint maior = -9999; // mesma coisa só que para o maiorint soma=0;     // conterá a soma total dos valores para calcular a média depoisfloat media;  // média tem que ser float pois pode dar fraçãoint maioresquemedia =0; // contador de quantos são maiores que a média
srand(time(NULL));   // should only be called once    obtem_vetor("Informe dados do primeiro vetor",primeira);  exibe_vetor("Eis o vetor de 30 elementos",primeira,LIMITE);  printf("\n");
// selecionando 
printf("\napenas os pares \n");// exibe apenas os pares porém, aproveita para somar, achar o maior e o menorfor( int l=0 ; l<LIMITE ; l++){    // acumula o valor para futuramente calcular a média  soma += primeira[l];  // testa se é par e exibe  if (primeira[l] %2 == 0  ) {       printf("elemento [%i], %i\n",l,primeira[l]);  };  // testa se é o maior  if (primeira[l] > maior) {          maior = primeira[l];    };  // testa se é o menor  if (primeira[l] < menor) {          menor = primeira[l];  };};media = soma/30.0;  // truque de 30.0 para forçar resultado floatprintf("A Média é %f\n",media);// outro loop para comparar elementos com a médiafor( int l=0 ; l<LIMITE ; l++){    // testa se é o maior  if (primeira[l] > media) {          printf("elemento [%i], %i é maior que a média\n",l,primeira[l]);         maioresquemedia++;    };};printf("Existem %i elementos maiores que a média %f",maioresquemedia,media);printf("O maior elemento é %i \n",maior);printf("O menor elemento é %i \n",menor);  }
Pode rodá-lo aqui
https://repl.it/@bokomoko/maioresquemedia

Perguntas similares