Ir ao conteúdo
  • Cadastre-se

Daniel Natan Schmitz

Membro Júnior
  • Posts

    10
  • Cadastrado em

  • Última visita

Tudo que Daniel Natan Schmitz postou

  1. @Xandrules Estou usando, continua apresentando um número negativo.... Exemplo: se tento converter 111111111111 deveria aparecer 4095, ao invés disso o programa está retornando: -2585. #include <stdio.h> int bin_to_dec(int bin) { long int dec=0, d=1; do{ dec = dec+(bin%10)*d; d = d*2; bin = bin/10; }while(bin != 0); return dec; } int main(){ long int bin=0, resultado=0; printf("Digite um binario a ser convertido para decimal\n"); scanf("%li", &bin); resultado = bin_to_dec(bin); printf("O valor convertido é: %li\n", resultado); return 0; } Este é o código utilizando long int
  2. Boa tarde, estou tentando criar um programa que converta valores binários em C, cheguei no seguinte código: #include <stdio.h> int bin_to_dec(int bin) { int dec=0, d=1; do{ dec = dec+(bin%10)*d; d = d*2; bin = bin/10; }while(bin != 0); return dec; } int main(){ int bin=0, resultado=0; printf("Digite um binario a ser convertido para decimal\n"); scanf("%d", &bin); resultado = bin_to_dec(bin); printf("O valor convertido é: %d\n", resultado); return 0; } O problema é que ele só converte se o binários tiver no máximo 10 dígitos. Preciso que ele converta um binário de quantos dígitos o usuário quiser. Se alguém puder me ajudar fico muito agardecido.
  3. @dif Posso publicar o código que fiz, o problema é que ele converte apenas números binários de 8 bits, e preciso que ele converta quantos números o usuário quiser. Segue minha função int bin_to_dec(int valorint) { int total = 0; int potenc = 1; while(valorint > 0) { total += valorint % 10 * potenc; valorint = valorint / 10; potenc = potenc * 2; } return total; } Obs.: Ao resolver o problema desta função as outras meio que se resolvem sozinhas.
  4. Boa noite pessoal, preciso criar um programa que converta bases numéricas: Binário para decimal Decimal para binário Binário para Hexadecimal Hexadecimal para binário O usuário poderá entrar com um número de quantos digitos ele quiser. Se souber de apenas uma, poste, pois de grão em grão a galinha enche o papo hehehe. Obrigado!
  5. Estou salvando em um int dentro de uma struct
  6. Eu só quero ordenar o ranking. Obs.: Compilei e executou legal.
  7. Boa noite pessoal, estou desenvolvendo um "joguinho" de apostas com vários jogadores, segue meu código: #include <stdio.h> #include <conio.h> //Biblioteca para limpar a tela #include <locale.h> // Biblioteca para permitir usi de acentos e caracteres especiais #include <string.h> // Biblioteca para Strings #include <stdlib.h> #define size1 50 #define size2 50 // Atividade Prática Supervisionada // Código produzido por: Daniel Schmitz e Willian Felipe Motta // 1° período de Tecnologia em Sistemas para Internet // Universidade Tecnológica Federal do Paraná // Câmpus Toledo struct Jogador //Struct que armazena dados do jogador { char nome[size2]; int fichas_j; }; int sorteio() // Função para sotear um número aleatório { int n_sorteado=0; srand(time(NULL) ); n_sorteado = rand() % 18; // Defina que os números aleatórios não podem ultrapassar 18 return n_sorteado; } int main() { char novo_jogador; int i=1; struct Jogador jogador[size1]; setlocale(LC_ALL, "Portuguese"); //Define a língua usada, permitindo a utilização de acentos e caracteres especiais do{ system("cls"); printf("*********************************************************\n"); printf("*********************************************************\n"); printf("***************| Seja bem vindo a Roleta |***************\n"); printf("*********************************************************\n"); printf("*********************************************************\n"); fflush(stdin); // Limpa o buffer do teclado para entrar com um tipo char printf("\nDigite o nome do jogador: \n"); gets(jogador[i].nome); //Lendo o char printf("\n\nBem vindo, você esta iniciando o jogo com 10 fichas.\n"); int fichas_jogador=10, aposta, fichas_apostadas=0, n_sorteado=0; char continuar; do{ do{ printf("\nQuantas fichas deseja apostar?\n"); scanf("%d", &fichas_apostadas); if(fichas_apostadas > fichas_jogador) printf("Você não tem todas essas fichas, tente novamente!"); }while(fichas_apostadas > fichas_jogador); //Testando se a quantidade de fichas apostadas não ultrapassam a quantidade que o jogador tem printf("\nVocê deseja apostar no [0]zero, [2]par ou [1]ímpar?\n"); scanf("%d", &aposta); //Escolhendo o tipo de número que o jogador deseja apostar n_sorteado = sorteio(); //Recebendo um número aleatório da função "sorteio" printf("\nNumero sorteado: %d\n", n_sorteado); if(aposta == 0) //Direciona o programa para a aposta do jogador { if(n_sorteado == 0){ //Se o jogador apostou no número zero e foi sorteado o número zero, as fichas apostadas são multiplicadas por sete e armazenadas com as fichas pré-existentes fichas_jogador = fichas_jogador - fichas_apostadas; //Deduz as fichas apostadas do total de fichas do jogador, para somar o novo número de fichas fichas_jogador = fichas_jogador + (fichas_apostadas * 7); } else fichas_jogador = fichas_jogador - fichas_apostadas; //Se o jogador errou o número apostado ele perde o tanto de fichas que ele apostou } if(aposta == 1) { if((n_sorteado % 2) != 0 ) { fichas_jogador = fichas_jogador + (fichas_apostadas * 2); fichas_jogador = fichas_jogador - fichas_apostadas; } else fichas_jogador = fichas_jogador - fichas_apostadas; } if(aposta == 2) { if((n_sorteado % 2) == 0 ) { fichas_jogador = fichas_jogador + (fichas_apostadas * 2); fichas_jogador = fichas_jogador - fichas_apostadas; } else fichas_jogador = fichas_jogador - fichas_apostadas; } printf("\nSuas fichas atualmente são: %d\n", fichas_jogador); //Apresentando o número de fichas que o jogador ficou após ter ganhado ou perdido o jogo if(fichas_jogador<=0) break; fflush(stdin); //Limpando o buffer do teclado printf("\nDeseja apostar mais? S para sim e N para não.\n"); scanf("%c", &continuar); //Descobrindo se o jogador quer apostar mais printf("\n\n"); if(continuar=='n' || continuar=='N') break; //Se o jogador não quiser mais apostar, sai do laço }while (continuar == 's' || continuar == 'S'); if(fichas_jogador>0) { printf("\nParabéns, você terminou o jogo com %d fichas\n", fichas_jogador); //Se o jogador terminar o jogo com fichas aqui ele é parabenizado e apresenta a quantidade de fichas com que ele terminou o jogo } else { printf("\nPocha vida, suas fichas acabaram, e o seu jogo também!"); // Caso se o jogador termine o jogo com saldo devedor ou sem fichas, essa mensagem é apresentada } jogador[i].fichas_j = fichas_jogador; // Passa o número de fichas com que o jogador terminou o jogo para a struct correspondente ao jogador fflush(stdin); printf("\n\nDeseja iniciar outro jogador? (S para sim e N para não)\n"); // Descobrindo se ooutro jogador deseja jogar scanf("%c", &novo_jogador); i++; }while(novo_jogador == 's' || novo_jogador == 'S'); system("cls"); //Limpa a tela int j=0; printf("\n\nRanking:\n"); //Imprimindo o ranking for(j = 1 ; j < i ; j++) { printf("\n%d° %s | %d fichas", j, jogador[j].nome, jogador[j].fichas_j); } printf("\n\n\n***Código produzido por Daniel Schmitz e Willian Motta, 1° período de TSI - UTFPR TD***\n\n\n"); return 0; } O problema é que preciso exibir o o ranking em ordem crescente de quem terminou com mais fichas e não faço ideia de como fazer. Alguma sugestão? Obrigado!
  8. Boa tarde, sou novato e estou no 1 período da faculdade, e meu professor passou o seguinte exercício : "Desenvolva um programa que contenha uma função que receba 4 notas de um aluno e uma letra que representa o tipo do cálculo. Se a letra for “A”, a função deverá fazer o cálculo da média aritmética das notas do aluno. Caso for a letra “P”, a função deverá realizar o cálculo de média ponderada com pesos, 4, 3, 2 e 1. Não deve ser permitido que o usuário informe uma letra diferente daquelas definidas para a função (para isso crie uma função que leia e valide o caractere digitado e retorne o mesmo para ser passado para a função do cálculo). Apresente o resultado da média, bem como se é média ponderada ou aritmética no corpo do programa principal." Cheguei ao seguinte código: #include <stdio.h> char valida (char *escolha) { if (*escolha = 'P' || 'p' || 'A' || 'a'){ return *escolha; } else return 'r'; } media_aritmetica(float *nota1, float *nota2, float *nota3, float *nota4) { float resultado=0; resultado = (*nota1 + *nota2 + *nota3 + *nota4) / 4; return resultado; } media_ponderada(float *nota1, float *nota2, float *nota3, float *nota4) { float resultado=0; resultado = (*nota1 * 4 + *nota2 * 3 + *nota3 * 2 + *nota4 * 1) / (4+3+2+1); } int main() { char escolha, escolha_validada; float nota1=0, nota2=0, nota3=0, nota4=0, media=0; printf("Digite os valores das quatro notas:\n"); scanf("%f%f%f%f", &nota1, &nota2, &nota3, &nota4); fflush(stdin); do { printf("Digite A para media aritmetica e P para media ponderada\n"); scanf("%c", &escolha); escolha_validada = valida(&escolha); if(escolha_validada == 'r'){ printf("Escolha invalida, por favor tente novamente\n"); } }while (escolha_validada == 'r'); if (escolha == 'P' || 'p' ){ media = media_ponderada(&nota1, &nota2, &nota3, &nota4); printf("A media ponderada é: %f", media); } else{ media = media_aritmetica(&nota1, &nota2, &nota3, &nota4); printf("A media aritmetica é: %f", media); } return 0; } Porém ao executa-lo ele não esta executando corretamente, apresenta sempre a média ponderada, e ainda por cima pega lixo na memória. Como na imagem:
  9. @1freakday Muito obrigado... Agora deu certo
  10. Bom dia. Meu professor de programação pediu o seguinte exercício: "Escreva uma função chamada continuar capaz de ler um caractere informado pelo usuário e somente retorne 1 se for igual a ‘S’ ou 0 se igual a ‘N’. Caso o usuário informar um caractere diferente a função deve emitir a mensagem “Caractere inválido! Digite novamente.”. Além disso, escreva uma função chamada cubo que receba um número inteiro, eleve este número ao cubo e retorne o resultado ao programa principal. O programa deve ficar lendo, calculando e apresentando os números até que o usuário informe a letra ‘N’ à pergunta “Deseja continuar?”." Cheguei ao seguinte código: #include <stdio.h> char continuar(char escolha){ if(escolha == 'S') return 1; else if(escolha == 'N') return 0; else printf("Caractere invalido"); } int cubo(int n){ int a=0; a = n*n*n; return a; } int main(){ int n=0, a=0; char escolha=0; do{ printf("Digite um numero\n"); scanf("%d", &n); a = cubo(n); printf("O numero elevado ao cubo é %d\n", a); printf("Deseja continuar? S para sim e N para nao"); scanf("%c", &escolha); }while(continuar(escolha) == 'S'); return 0; } Porém ao compilar este código no Geany, apareceu o seguinte erro: "ex_9.c:7:1: warning: control reaches end of non-void function [-Wreturn-type]" Alguém pode me ajudar?

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!