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:
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
6 anos atrás
6 anos atrás
6 anos atrás
9 anos atrás
9 anos atrás
9 anos atrás