Informática, perguntado por jacarellly, 1 ano atrás

Escreva um programa em C que faça a leitura de 100 valores inteiro. O programa deve informar qual o maior valor, qual o menor valor, quantos são positvos, quantos são negativos e a media desses valores.

Soluções para a tarefa

Respondido por KuroeJin
0
#include<stdio.h>
#include<stdlib.h>

int tam=100;

int ler_values(int value[], int pos);
int maior_valor(int value[], int maior, int pos);
int menor_valor(int value[], int menor, int pos);
int qtd_positivo(int value[], int qtdpositivo, int pos);
int qtd_negativo(int value[], int qtdnegativo, int pos);
float media_values(int value[], float media, int pos);
int informar(int value[]);

int main(){
 int values[tam];
 
 ler_values(values, 0);
 informar(values);

 system("pause");
 return 0; }

int ler_values(int value[], int pos){
 if(pos<tam){
  printf("Insira um numero para v%d", pos+1);
  scanf("%d", &value[pos]);
  printf("\n-------------------------------------------------------------\n");
  return ler_values(value, pos+1); }
 
 printf("\n\n");
 return 0; }

int maior_valor(int value[], int maior, int pos){
 if(pos<tam){
  if(value[pos]>maior){ return maior_valor(value, value[pos], pos+1); }
  return maior_valor(value, maior, pos+1); }

 return maior; }

int menor_valor(int value[], int menor, int pos){
 if(pos<tam){
  if(value[pos]<menor){ return menor_valor(value, value[pos], pos+1); }
  return menor_valor(value, menor, pos+1); }

 return menor; }

int qtd_positivo(int value[], int qtdpositivo, int pos){
 if(pos<tam){
  if(value[pos]>0){ return qtd_positivo(value, qtdpositivo+1, pos+1); }
  return qtd_positivo(value, qtdpositivo, pos+1); }

 return qtdpositivo; }

int qtd_negativo(int value[], int qtdnegativo, int pos){
 if(pos<tam){
  if(value[pos]<0){ return qtd_negativo(value, qtdnegativo+1, pos+1); }
  return qtd_negativo(value, qtdnegativo, pos+1); }

 return qtdnegativo; }

float media_values(int value[], float media, int pos){
 if(pos<tam) return media_values(value, media+value[pos], pos+1);

 return media/(float)tam; }

int informar(int value[]){
 printf("O maior valor eh %d e o menor eh %d\n", maior_valor(value, value[0], 1), menor_valor(value, value[0], 1));

 printf("A quantidade de valores positivos eh %d e negativos eh %d\n", qtd_positivo(value, 0, 0), qtd_negativo(value, 0, 0));

 printf("A media dos valores eh %.2f\n\n", media_values(value, 0, 0));
 return 0; }
Respondido por YagamiTREM
0

Resposta:

#include <stdio.h>

#include <stdlib.h>

int main() {

   int i,val,positivos=0,menor,maior,soma=0,negativos=0;

   float media;

     

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

     printf("Digite um valor: ");

     scanf("%d", &val);

     if(val == 0){

      maior = val;

      menor = val;

  }

  if(val < menor){

   menor = val;

  }

  else if(val > maior){

   maior = val;

  }

  if(val > 0){

   positivos++;

  }

  else if(val < 0){

   negativos++;

  }

  soma = soma + val;

 }

 

media = soma / i;

 

   

   printf("\n\nMaior valor: %d", maior);

   printf("\nMenor valor: %d", menor);

   printf("\nPositivos: %d", positivos);

   printf("\nNegativos: %d", negativos);

   printf("\nMedia: %.2f", media);

   return 0;

}

Anexos:
Perguntas interessantes