Ir ao conteúdo
  • Cadastre-se

C <Exercico em c - vetores>


camposm

Posts recomendados

nota:estou tentando fazer por vetor mas estou perdido no meio da resolução.

Será feita uma pesquisa sobre a audiência de 3 canais de TV em uma certa cidade. Em um número indeterminado de casas visitadas será pesquisado o número de pessoas que estão assistindo TV e o canal assistido: 1 (canal A), 2 (canal b )ou 3 (canal C). Faça um programa que leia esses dados, sabendo que a entrada de dados deverá ser encerrada quando for informado o valor (-1) para o número de pessoas assistindo TV em uma casa. Serão consideradas apenas casas com pelo menos uma pessoa assistindo um dos 3 canais pesquisados. O programa deverá calcular e imprimir:

1) A média do número de pessoas que estavam assistindo o canal A;

2) O número mínimo de pessoas em uma casa em que o canal B estava sendo assistido;

3) A quantidade total de pessoas que estavam assistindo o canal C.

 

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

@camposm      voce pode colocar dois vetores , sendo um para o numero de pessoas e outro para o canal , e um contador inicializado com valor zero , e coloque um while que se repita enquanto  o numero digitado para a quantidade de pessoas for diferente de -1 , e dentro do while pegue os dados e coloque no vetor referente e incremente o contador , e depois do while voce pesquisa nos vetores para fazer os calculos ,  entao faca seu codigo e poste aqui para vermos como esta e em que podemos ajudar .

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@devair1010 aqui esta o programa que eu fiz de acordo com o que você falou so que com algumas mudanças.porém nao consegyuir fazer a parte 2).

 

<#include <stdio.h>
int main(){
    int pessoas[9999],canal[9999];
    int i,k=0,soma=0,somaC=0;
    float media;
        for(i=0;i<3;i++){
            printf("Pessoas:\n");
            scanf("%d",&pessoas);
            if(pessoas == -1){//termina quando pessoas for -1
                return 0;
            }
            printf("Canal:\n");
            scanf("%d",&canal);
            if(canal!=1 && canal!=2 && canal!=3){
                printf("Canal invalido, digite outro(1,2 ou 3):\n");
                scanf("%d",&canal);
            }
            
            if(canal==1){//soma para a media de A
            soma += pessoas;
            k++;
            }
            
            if(canal==3){//soma para o canal C
            somaC += pessoas;
            }
            
            
        }
    //Media do canal A
    media=(float)soma/(float)k;
    printf("Media de pessoas que assitem o canal A: %f\n",media);
    //Total de pessoas que assitem canal C
    printf("Numero de pessoas que assitem o canal 😄 %f\n",somaC);
}
>

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@camposm    para postar seu código é melhor usar o botão <>

1671633960_barradeferramentas.JPG.e69cc0662c6a04c36d3c8f0e7eddf4d6.JPG

que está desenhado lá na barra de ferramentas da janela de responder , para que  o código não fique faltando caracteres ,  e seu código está bom  ,  então com algumas modificações poderia ser assim  :

#include <stdio.h>
#include <time.h>
#include <conio.h>
#include <math.h>
#include <windows.h>
/*             0     1    2     3   4      5      6      7         8  */
typedef enum{black,blue,green,cyan,red,magenta,brown,lightgray,darkgray,   /* nome das cores */
lightblue,lightgreen,lightcyan,lightred,lightmagenta,yellow,white} colors;
/*  9         10         11        12        13         14    15 */

static int __BACKGROUND = 1/*BLACK*/;/*pode ser o numero ou o nome da cor*/
static int __FOREGROUND = lightgray;

void textcolor_2 (int letras, int fundo){/*para mudar a cor de fundo mude o background*/
    __FOREGROUND = letras;
    __BACKGROUND = fundo;
    SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),
    letras + (__BACKGROUND << 4));
}
int main(){
    srand(time(NULL));
    int pessoas[9999],canal[9999];
    int i,q,w,k=0,u=0,f=0,cont=0;
    float media;
    while(i != -1){
        printf("Pessoas:\n");
        scanf("%d",&i);
        if(i!=-1){
            pessoas[cont]=i;
            do{
                printf("Canal\n1=A\n2=B\n3=C : ");
                scanf("%d",&canal[cont]);
                if(canal[cont]!=1 && canal[cont]!=2 && canal[cont]!=3)
                    printf("Canal invalido .\n");
            }while(canal[cont]!=1 && canal[cont]!=2 && canal[cont]!=3);
            cont++;
        }
    }
    for(w=0;w<cont;w++){
        if(canal[w]==3)f+=pessoas[w];
        if(w==0)u=pessoas[w];
        if(u>pessoas[w]&& canal[w]==2)u=pessoas[w];
        if(canal[w]==1)
            q+=pessoas[w];
    }
    printf("\n\n");
    textcolor_2(11,0);
    printf("A media do numero de pessoas que estavam assistindo o cana A eh ---> %.2f\n",(float)q/cont);
    printf("O numero   minimo de pessoas que estavam assistindo o cana B eh ---> %d\n",u);
    printf("A quantidade total de pessoas que estavam assistindo o canal C eh -> %d",f);
    printf("\n\n");
    for(q=0;q<30;q++){
        textcolor_2(9,rand()%15+1);
        printf(" ");
    }
    textcolor_2(10,12);
    printf("   Tecle !   ");
    for(q=0;q<30;q++){
        textcolor_2(9,rand()%15+1);
        printf(" ");
    }
    getch();
    printf("\n\n");
    textcolor_2(15,0);
    return 0;
}

 

Link para o comentário
Compartilhar em outros sites

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!