Ir ao conteúdo
  • Cadastre-se

iLoveProg

Membro Júnior
  • Posts

    9
  • Cadastrado em

  • Última visita

posts postados por iLoveProg

  1. Bom pessoal. Eu estava precisando fazer uma estrutura de cartas com as seguintes informações: naipe, valor e id(identificado da carta), e depois embaralha-lo. Eu consegui fazer toda a estrutura e as funções, mas estou com dificuldade em printar as cartas com o valores e vaipes tudo certo. Se alguem souber, deem um help.

    #include <time.h>
    #include <stdio.h>
    #include <stdlib.h>
    
    typedef struct{
    	int num;
    	char naipe;
    	int id;
    
    }ficha;
    
    ficha carta[52];
    
    void baralhar(int *baralho);
    void preencherid (int *baralho);
    void preenchernum (int *baralho);
    void preenchernaipe(int *baralho);
    
    int main (){
    	int baralho[52];
    	baralhar(baralho);
    	preencherid (baralho);
    	preenchernum (baralho);
    	preenchernaipe(baralho);
    	return 0;
    }
    
    
    void baralhar(int *baralho) {
    	int i=0,j=0;
    	srand(time(NULL));
    	for(i=0;i<52;i++){
    		baralho[i]=rand() % 52;
    	}
    	for(i=0;i<52;i++){
    		for (j=i+1;j<52;j++){
    			if(baralho[j]==baralho[i]){
    				baralho[j]++;
    				i=0;
    				j=0;
    			}
    			if(baralho[j]==52)
    				baralho[j]=0;	
    		}
    	}
    }
    
    void preencherid (int *baralho) {
     	int i;
     	for (i=0;i<52;i++){
     		carta[i].id=baralho[i];
     	}
     }
     
    void preenchernum (int *baralho) {
     	int i;
     	for (i=0;i<52;i++){
     	if ((baralho[i]>=0) && (baralho[i]<13))
     		carta[i].num=baralho[i]+1;
    	if ((12<baralho[i]) && (baralho[i]<26))
     		carta[i].num=baralho[i]-12;
    	if ((25<baralho[i]) && (baralho[i]<39))
     		carta[i].num=baralho[i]-25;
    	if ((38<baralho[i]) && (baralho[i]<52))
     		carta[i].num=baralho[i]-38;
    	}
    }
    
    void preenchernaipe(int *baralho){
     	int i;
     	for (i=0;i<52;i++){
     	if ((baralho[i]>=0) && (baralho[i]<13))
     		carta[i].naipe='O';
    	if ((12<baralho[i]) && (baralho[i]<26))
     		carta[i].naipe='C';
    	if ((25<baralho[i]) && (baralho[i]<39))
     		carta[i].naipe='P';
    	if ((38<baralho[i]) && (baralho[i]<52))
     		carta[i].naipe='E';
    	}
    }	

     

  2. #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    
    typedef struct{
    	char nome[15];
    	float potencia;
    	int tempo;
    	int tdias;
    	
    	
    } Consumo;
    
    int main(){
    	int quantidade=2;
    	Consumo eletrodomesticos[quantidade];
    	int i=0;
    	float consumototal;
    	float consumo;
    	float porcentagem;
    	
    	for(i=0;i<quantidade;i++){
    		printf("\nInsira o nome, potencia(em kW), tempo ativo por dia(em hrs) e  quantidade de dias em que esta ligado:\n\n");
    		scanf("%s %f %d %d", &eletrodomesticos[i].nome, &eletrodomesticos[i].potencia, &eletrodomesticos[i].tempo,&eletrodomesticos[i].tdias);
    	}
    	for(i=0;i<quantidade;i++){
    		printf("ELETRODOMESTICO %i\n\nNOME: %s\nPOTENCIA: %f\nTEMPO ATIVO: %d\nDIAS LIGADO: %d\n\n", i+1, eletrodomesticos[i].nome, eletrodomesticos[i].potencia, eletrodomesticos[i].tempo, eletrodomesticos[i].tdias);
    	}
    	for(i=0;i<quantidade;i++){
    		
    		consumo=eletrodomesticos[i].potencia*eletrodomesticos[i].tempo*eletrodomesticos[i].tdias;
    		consumototal+=consumo;
    		printf("Consumo %d= %f\n", i+1, consumo);
    
    	}	 
    	printf("Consumo total=%f\n\n", consumototal);
    	
    	for(i=0;i<quantidade;i++){
    	 porcentagem=consumo/consumototal;
    	 
    	}
    	printf("Porcentagem (1): %.2f porcento\n", (porcentagem*100));
    	printf("Porcentagem (2): %.2f porcento\n", (1-porcentagem)*100);
    	return 0;
    }

    Consegui. valeu ae maninho. Segue o código. Nesse caso a porcentagem so serve para dois aparelhos. Ainda to fazendo algumas modificações.

    • Curtir 1
  3. É o seguinte pessoal, eu to fazendo uma agende (bem arcaica, por sinal, mas que pelo menos funcione) com struct, e preciso colocar uma função para pesquisar nomes, mas eu n estou conseguindo. O meu codigo ainda falta implementar mais coisas, alem da função PesquisarNomes, mas eu ja empaquei nessa primeira função. Deem uma olhada.

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    void pesquisarnome(char *pessoas, int tam);
    
    typedef struct{
    	char nome[15];
    	char email[25];
    	char endrua[100];
    	int endnumero;
    	char endcompl[10];
    	char endbairro[10];
    	int endcep;
    	int tel;
    	int datadia;
    	int datames;
    	int dataano;
    	char obs[15];
    } Agenda;
    
    
    int main(){
    
    	int tam = 2;
    	Agenda pessoas[tam];
    	int op;
    	int i;
    
    	
    	printf("Cadastrar:\n\nEx de cadastro: Nome(Joao), email, endereço rua, numero, bairro, cep, complemento, telefone, dia do aniversario, mes do aniversario, ano do aniversario, observação");
    	for(i=0;i<2;i++){
    		scanf("%s %s %s %d %s %d %s %d %d %d %d %s", &pessoas[i].nome, &pessoas[i].email, &pessoas[i].endrua, &pessoas[i].endnumero, &pessoas[i].endbairro, &pessoas[i].endcep, &pessoas[i].endcompl, &pessoas[i].tel, &pessoas[i].datadia, &pessoas[i].datames, &pessoas[i].dataano, &pessoas[i].obs);
    	}
    	for(i=0;i<2;i++){
    		printf("\n\nCADASTRO(%d):\n\nNOME: %s\nEMAIL: %s\nRUA: %s\nNUMERO: %d\nBAIRRO: %s\nCEP: %d\nCOMPL.: %s\nTEL: %d\nDATA DIA: %d\nDATA MES: %d\nDATA ANO: %d\nOBSERVACAO: %s\n\n\n", i+1, pessoas[i].nome, pessoas[i].email, pessoas[i].endrua, pessoas[i].endnumero, pessoas[i].endbairro, pessoas[i].endcep, pessoas[i].endcompl, pessoas[i].tel, pessoas[i].datadia, pessoas[i].datames, pessoas[i].dataano, pessoas[i].obs);
    	}
    	printf("$$$$$$$$$$$$$$$$$$$$$$$ A G E N D A $$$$$$$$$$$$$$$$$$$$$$$$$\n\n\n\n");
    	printf("MENU: Escolha uma opcao:\n\nPesquisar Nome (1) \n\nPesquisar Mes de Aniversario(2)\n\nNomes e Tels (3)\n\n");
    	scanf("%d", &op);
    	
    		switch(op){
    		case 1: pesquisarnome(pessoas, tam);
    		break;
    		
    	
    		
    	}
    
    
     return 0;
    }
    
    void pesquisarnome(char *pessoas, int tam){
    
    
    	int i;
    	char x[50];
    	
    	
    	printf("\nNome: ");
      	scanf("%s",&x);
    	
    		 for(i=0;i<tam;i++){
    		 	
            if(strcmp(x, pessoas)==0){
            	printf("%s", pessoas);
    		}
    	}
    	return 0;
    }
            

     

  4. Faça um programa que controla o consumo de energia dos eletrodomésticos de uma casa e:
    -Crie e leira 5 eletrodomésticos que contém nome (máximo 15 letras), potencia (real, em kW) e tempo ativo por dia (real, em horas).
    -Leia um tempo t (em dias), calcule e mostre o consumo total na casa e o consumo relativo de cada eletrodoméstico (consumo/consumo total) nesse período de tempo. Apresente este último dado em porcentagem.

    Eu fiz o código todo certo, mas eu não consigo fazer o consumo total e nem a porcentagem de consumo por eletrodoméstico. Vejam o código, eu estou indicando onde eu não consigo.

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    
    typedef struct{
       char nome[15];
       float potencia;
       int tempo;
       int tdias;
       
       
    } Consumo;
    
    int main(){
       int quantidade=2;
       Consumo eletrodomesticos[quantidade];
       int i=0;
       float consumototal;
       float consumo;
       float porcentagem;
       
       for(i=0;i<quantidade;i++){
          printf("\nInsira o nome, potencia(em kW), tempo ativo por dia(em hrs) e  quantidade de dias em que esta ligado:\n\n");
          scanf("%s %f %d %d", &eletrodomesticos[i].nome, &eletrodomesticos[i].potencia, &eletrodomesticos[i].tempo,&eletrodomesticos[i].tdias);
       }
       for(i=0;i<quantidade;i++){
          printf("ELETRODOMESTICO %i\n\nNOME: %s\nPOTENCIA: %f\nTEMPO ATIVO: %d\nDIAS LIGADO: %d\n\n", i+1, eletrodomesticos[i].nome, eletrodomesticos[i].potencia, eletrodomesticos[i].tempo, eletrodomesticos[i].tdias);
       }
       for(i=0;i<quantidade;i++){
          
          consumo=eletrodomesticos[i].potencia*eletrodomesticos[i].tempo*eletrodomesticos[i].tdias;
       
          printf("Consumo %d= %f\n", i+1, consumo);
    
       }   
       for(i=0;i<quantidade;i++){
          consumototal= eletrodomesticos[i+1].potencia*eletrodomesticos[i+1].tempo*eletrodomesticos[i+1].tdias;
             
       } 
       printf("Consumo total=%f\n\n", consumototal); //NAO CONSIGO FAZER O CONSUMO TOTAL
       
       for(i=0;i<quantidade;i++){
        porcentagem=consumo/consumototal;
        printf("Porcentagem (%d): %f", i+1, porcentagem); //E NEM A PORCENTAGEM DE CONSUMO
       }
       
       return 0;
    }

     

  5. -> Faça um programa que preencha um vetor com os modelos de cinco carros (exemplos de modelos: Fusca, Gol, Vectra, etc.). Preencha outro vetor com o consumo desses carros, isto e, quantos quilômetros cada um deles faz com um litro de combustível. Calcule e mostre: (a) O modelo de carro mais econômico; (b) Quantos litros de combustível cada um dos carros cadastrados consomem para percorrer uma distancia de 1.000 quilômetros.

     

    MEU CODIGO: O que tem de errado com, nao consigo ver onde esta o erro. Ele compila, mas quando tento colocar as informações ele da erro.

    #include<stdlib.h>
    #include<stdio.h>
    #include<string.h>
    int main(){
    
    	char modelo[20] [4]; 
    	int consumo[4],maisEconomico = 1000; 
    	int posicaoMaisEconomico; 
    	int i;
    
    	for(i=0;i<4; i++){ 
    	
    		printf("\nDigite o modelo: "); 
    		scanf("%s", modelo[i]); 
    		printf("\nDigite o consumo: "); 
    		scanf("%d",consumo[i]);
     
    		if(consumo[i] < maisEconomico){ 
    			maisEconomico = consumo[i]; 
    			posicaoMaisEconomico = i; 
    		} 
    
    	} 
    
    		printf("O carro mais economico é: %s \t", modelo[posicaoMaisEconomico]); 
    
    	
    		printf("O modelo: %s \t",modelo[0]); 
    		printf("consome em 1000Km %d",consumo[0] * 1000); 
    		
    		printf("O modelo: %s \t",modelo[1]); 
    		printf("consome em 1000Km %d",consumo[1] * 1000); 
    		
    		printf("O modelo: %s \t",modelo[2]); 
    		printf("consome em 1000Km %d",consumo[2] * 1000);
    		 
    		printf("O modelo: %s \t",modelo[3]); 
    		printf("consome em 1000Km %d",consumo[3] * 1000); 
    	
    		system("PAUSE");	
    		return 0;
    }

     

  6. Estou com dificuldade em uma exercicio.

    Escreva um programa para ler o conteúdo de um arquivo contendo as notas obtidas pelos alunos de uma turma. O programa deve exibir na tela o valor da nota mínima, valor da nota máxima e o total de alunos aprovados e reprovados (considere que o aluno é aprovado se a nota for maior ou igual a 5.0). O formato do arquivo é o seguinte:

     

    7.5
    8.4
    9.1
    4.0
    5.7
    4.3

     

    Eu so sei ler e escrever arquivos, selecionar o que deve ser imprimido do arquivo nao faço a minima ideia. Me ensinem pelo menos a primeira parte, de exibir a maior e minima nota. Foi ate aqui o que eu fiz:

    #include<stdio.h>
    
    int main(){
    	FILE *arquivo;
    	float nota;
    	float maior = 0;
    	int i;
    	
    	arquivo = fopen("notas.txt", "r");
    	
    	if(arquivo==NULL){
    		perror("Erro ao abrir");
    		return 0;
    	}
    	
    	for(i=0;i<5;i++){
    	fscanf(arquivo,"%f", &nota);
    		if (nota>maior){
    		nota = maior;
    		
    		printf("%f\n", maior);
      
    		}
    	}
    	
    	fclose(arquivo);
    
    	system("PAUSE");
    	return 0;
    }

     

    notas.txt

  7. Esse primeiro código é a Bhaskara que esta funcionando perfeitamento. Eu converti ela pra uma função e agora esta dando resultados diferentes. Alguem saberia o porque? Eu não estou conseguindo ver nenhum erro. O código sem função esta compilando e o resultado esta certo, o código convertida com função esta compilando, mas o resultado esta errado. O primeiro é o código de Bhaskara sem função, e o segundo é com função(esse que esta com erro).

     

    //CODIGO BHASKARA SEM FUNÇÃO
    
    #include <math.h>
    #include <stdio.h>
    
    main()
    {
        float a, b, c, delta;
    
        printf("\nBHASKARA\n\n");
    
        printf("\nDigite o valor de A: ");
        scanf("%f", &a);
        printf("\nDigite o valor de B: ");
        scanf("%f", &b);
        printf("\nDigite o valor de C : ");
        scanf("%f", &c);
    
        delta = (pow(b, 2) - 4*a*c);
    
        if(delta >= 0)
        {
            if(delta == 0)
            {
                printf("\nA raiz x1 = %f", ((-b + sqrt(delta))/2*a));
            }
    
            else
            {
                printf("\nA raiz x1 = %f", ((-b + sqrt(delta))/2*a));
                printf("\nA raiz x2 = %f", ((-b - sqrt(delta))/2*a));
            }
        }
    
        else
        {
     
    
            printf("0");
        
        }
    
        return(0);
    }
    // CONVERTIDA EM FUNÇÃO
    
    #include<stdio.h>
    #include<stdlib.h>
    #include<math.h>
    float bhaskara(float a, float b, float c);
    
    int main(){
     
     float a, b, c;
     float resultado;
     
     printf("\nDigite o valor de A: ");
        scanf("%f", &a);
        printf("\nDigite o valor de B: ");
        scanf("%f", &b);
        printf("\nDigite o valor de C : ");
        scanf("%f", &c);
     
     printf("\n%f\n%f", bhaskara(a, b, c));
     
     return 0;
    }
    
    float bhaskara(float a, float b, float c){
    
        float delta, raiz1, raiz2;
        delta = (pow(b, 2) - 4*a*c);
       
       if(delta >= 0){
            if(delta == 0){
            
                raiz1 = ((-b + sqrt(delta))/2*a);
                
                return(raiz1, raiz2);
            }
            else{
             raiz1 = ((-b + sqrt(delta))/2*a);
             raiz2 = ((-b - sqrt(delta))/2*a);
             
             return (raiz1, raiz2);
            }
        }
        else{
         
     return 0;
     
     }
    }
          
    
    SixeEngenharia
    iniciante
    
    Mensagens : 13
    Data de inscrição : 02/05/2016
    Idade : 20
    Localização : Rio de Janeiro, RJ, BRasil
    
    Ver perfil do usuário Enviar uma mensagem privada
    Voltar ao Topo Ir em baixo

     

     

     

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!