Ir ao conteúdo

Posts recomendados

Postado

/*1-Faça um programa que receba como entrada o nome e a população de um número
indeterminado de cidades e informe qual a quantidade diária de resíduos sólidos (LIXO)
gerados por cada uma delas. A leitura será finalizada quando a população digitada for zero.
Informe ainda qual a cidade que produz mais resíduo, dentre as que foram informadas. DICA:
pesquise na internet a produção per capita de lixo do brasileiro (kg/hab/dia).
*/

 

 

OBS: SOU NOVATO

 

#include <stdio.h>
#include <stdlib.h>
#define MAX 1000
int main(){
    int i, j;
    int maior[MAX], maior2,lixo;
    Cidade[MAX][30] six[MAX];

    printf("==============DESCUBRA A QUANTIDADE DE LIXO QUE SUA CIDADE PRODUZ===============\n\n");
          for (i=1; i<MAX; i++){
              printf("1-)Informe o Nome da Cidade Desejada:\n");
            scanf("%s",&six.cidades);
               printf("\n2-)Informe a Populacao da Cidade Informada a cima: ");
               scanf("%d",&six.populacao);
               maior2=six.populacao;
               system("pause");// limpar a tela 
               system("cls");// limpar a tela 
               lixo=six.populacao*1.0993*30;
        }               
}

  • Curtir 2
Postado

@ucas_santoss         esse enunciado esta bem confuso , pois pode se inserir o nome de muitas e muitas cidades, e entao voce precisaria usar muitos   if  para definir a quantidade de lixo de cada cidade , que voce pesquisaria para ter os valores reais , e seu codigo ficaria enorme , seria mais fácil se pedisse que o usuario informasse a quantidade de lixo ,  e voce pode usar um vetor com valor indefinido e um loop while ou do / while ,  que se repita enquanto nao for digitado o valor zero na  populacao .   e depois que passar pelo loop , voce pesquisa no vetor para imprimir os resultados  .

  • Curtir 1
Postado
#include<stdio.h>
#include<string.h>
#include <locale.h>
#include <windows.h>
float populacao;
float total = 0;
char nome[200];
char maior[200];
int main(){
	setlocale(LC_ALL, "Portuguese");
	printf ("Digite uma cidade\n");
	scanf ("%s",nome);
	printf ("Digite populacao\n");
	scanf ("%f",&populacao);
	total = populacao*0,859;
	if(populacao!=0){
	printf ("A cidade de %s gera media de %f kg resíduos sólidos(LIXO) por dia\n",nome,populacao);
}
	else
	if (populacao==0){
	return (0);
	}
	char r;
	system("cls");
	printf("pressione \"o\" para outra cidade\n ou \"p\" para ver quem mais produziu [o/p]\n"); 
	scanf(" %c", &r); 
    if (r=='o'||r=='O'){
	return main();
	Sleep(2000);
	system("cls");
	return main();
    }
    if(r=='p'||r=='P'){
	printf("a cidade que mais produziu foi %s\n",maior);
	}
	else{
	printf ("opcao invalida pressione o ou p\n");
	Sleep(2000);
	system("cls");
	return main();
	}
	}
	

 

  • Curtir 2
  • Obrigado 1
Postado

@ucas_santoss Oi, tudo bem? Consegui resolver o seu problema, mas como não programo em C, pode ser que contenha algum erro de sintaxe 🤔

#include <stdio.h>
#include<string.h>
#include <stdlib.h>

int main(void) {
  char cidadeMaiorQntdLixo[256]; //aqui vai ficar o nome da cidade com a maior qntd de lixo produzida diariamente
  int maiorQntdLixo = 0; //aqui vai ficar a qntd de lixo produzida pela cidade que está na variável de cima
  char cidade[256]; //vou utilizar essa variável para guardar o nome da cidade que o usuário me fornecer
  int habitantes; //vou utilizar essa variável para guardar o número de habitantes da cidade que o usuário me fornecer
  float qntdLixo; //vou fazer o calculo de acordo com os habitantes e guardar a qntd de lixo produziada diariamente aqui
  while(1) { //esse loop vai ficar "rodando" até que por algum condição eu "finalize" ele, que vai ser quando eu utilizar o "break;"
    printf("1-)Informe o Nome da Cidade Desejada:\n");
    scanf("%s", &cidade[0]);
    printf("\n2-)Informe a Populacao da Cidade Informada a cima:\n");
    scanf("%i", &habitantes);
    system("cls");// limpar a tela 
    if(habitantes == 0) { // aqui quando o usuário retornar 0 eu vou finalizar esse loop
      break; //finaliza o loop, não executa mais nada dentro desse laço
    } 
    qntdLixo = habitantes * 1.0993; //calcula a qntd de lixo produzida diariamente pela cidade enviada pelo usuário 
    if(qntdLixo > maiorQntdLixo) { // se a cidade enviada pelo usuário for maior ela vai colocada nas variáveis
      maiorQntdLixo = qntdLixo; 
      strcpy(cidadeMaiorQntdLixo, cidade); // se você tiver dúvida sobre a funcionalidade do strcpy de uma procurada no google!
    }
  }
  printf("%s", cidadeMaiorQntdLixo); //caso o loop for finalizado ele vai retornar o nome da cidade com maior qntd de lixo
  return 0;
}

O importante é você aprender, por isso comentei parte por parte do código para você entender o que está acontecendo! Veja se funciona, caso ocorra algum problema ou você está confuso sobre algo sinta-se livre para perguntar.

 

Abraços.

 

  • Curtir 2
  • Obrigado 1
Postado

Bom Dia!

 

Antes de escrever qualquer coisa analise com cuidado o que diz o enunciado.

 

Em 04/11/2019 às 11:13, ucas_santoss disse:

1- Faça um programa que receba como entrada o nome e a população de um número
indeterminado de cidades
[...]

 

Para armazenar é preciso estruturas dinâmicas de memória ou estáticas (absurdas). Absurdas porque são estruturas que se supõe grandes o bastante para qualquer informação do tipo. Por exemplo: vetores >> 1. Dinâmicas são aqueles que racionalmente conduz o uso de recursos quando se precisa deles. Por exemplo: arquivos em disco.

 

Recomendo para você: arquivos em disco.

 

***

Por que importou a biblioteca stdlib?

Aguardando ...

  • Curtir 1
  • Obrigado 1
Postado

Talvez assim?

#include <stdio.h>
#include <stdlib.h>

#define limpar system("clear")      // No Windows mude para "cls"

struct Cidade {
    char nome[200];
    int populacao;
    float lixo;
};

int main() {
    int maximo = 10000;             // Quantidade máxima de cidades
    int quantidade = 0;             // Quantidade de cidades e posição de inserção

    struct Cidade cidades[maximo];  // Todas as cidades
    struct Cidade cidadeMaisLixo;   // Cidade com mais lixo
    struct Cidade entrada;          // Reservado para entrada de dados

    do {
        limpar;
        printf("Digite o nome: ");
        scanf(" %[^\n]s", entrada.nome);

        printf("Digite a população: ");
        scanf(" %i", &entrada.populacao);

        printf("Digite a quantidade de lixo: ");
        scanf(" %f", &entrada.lixo);

        if (entrada.populacao > 0) {
            cidades[quantidade] = entrada;
            quantidade += 1;
        }
    } while (entrada.populacao > 0 && quantidade < maximo);

    if (quantidade > 0) {
        cidadeMaisLixo = cidades[0];

        for (int i = 1; i < quantidade; ++i) {
            if (cidades[i].lixo > cidadeMaisLixo.lixo) {
                cidadeMaisLixo = cidades[i];
            }
        }

        printf("--------------------------------------- \n");
        printf("     Nome: %s \n", cidadeMaisLixo.nome);
        printf("População: %i \n", cidadeMaisLixo.populacao);
        printf("     Lixo: %.2f \n", cidadeMaisLixo.lixo);
        printf("--------------------------------------- \n");
    }

    return 0;
}

 

  • Curtir 1
Postado
13 horas atrás, Mauro Britivaldo disse:

Bom Dia!

 

Antes de escrever qualquer coisa analise com cuidado o que diz o enunciado.

 

 

Para armazenar é preciso estruturas dinâmicas de memória ou estáticas (absurdas). Absurdas porque são estruturas que se supõe grandes o bastante para qualquer informação do tipo. Por exemplo: vetores >> 1. Dinâmicas são aqueles que racionalmente conduz o uso de recursos quando se precisa deles. Por exemplo: arquivos em disco.

 

Recomendo para você: arquivos em disco.

 

***

Por que importou a biblioteca stdlib?

Aguardando ...

 

@ucas_santoss 

Você só precisa dizer qual cidade gera mais resíduos, usando aquele multiplicador. Escolha uma fonte de referência, como aessa matéria da revista EXAME ou procue por algo nos sites do governo em http://mma.gov.br sei lá. Só isso. Então não precisa salvar NADA exceto o nome da cidade até onde leu e que gerou a maior quantidade de lixo.Basta uma string do tamanho do nome da cidade.

 

E enquanto estiver lendo imprima os valores e a quantia calculada de resíduos, porque assim depois não precisa mais desses valores. Basta multiplicar a população pelo coeficiente

Postado
10 horas atrás, arfneto disse:

 

@ucas_santoss 

Então não precisa salvar NADA exceto o nome da cidade até onde leu e que gerou a maior quantidade de lixo.Basta uma string do tamanho do nome da cidade.

 

E quando futuramente precisar exibir terá que teclar tudo novamente.

 

***

O uso de memória em qualquer  caso não vale o esforço de pensar em sua nessecidade! A menos que queria amortizar o trabalho humano em algum sentindo ou melhorar o desempenho do programa. Neste cabe o primeiro MOTIVO perfeitamente.

 

 

 

 

 

 

 

 

 

 

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!