Ir ao conteúdo
  • Cadastre-se

MassakiMsk

Membro Pleno
  • Posts

    472
  • Cadastrado em

  • Última visita

Tudo que MassakiMsk postou

  1. o enunciado do exercicio nao pede strings, mas sim caracter. então faz assim: #include <stdio.h>#include <locale.h>/*2. Codifique, compile e execute um programa que:a- crie/abra um arquivo texto de nome "arq.txt",b- permita que o usuário entre com diversos caracteres nesse arquivo, até que o usuário entre com o caractere '0'.*/int main(){ setlocale(LC_ALL, "portuguese"); FILE *txt; txt = fopen("arq.txt", "w"); // Cria o arquivo arq.txt printf("## Validação de caracteres ##\n\n"); char caracter; if(txt != NULL){ printf("Digite algum caracter: "); scanf("%c", &caracter); fprintf(txt, "%c", caracter); while(caracter !='0'){ printf("Digite algum caracter: "); scanf(" %c", &caracter); fprintf(txt, "%c", caracter); } }}
  2. Eu nao sei nada de C++, mas copiei e colei seu codigo aqui e rodou de boa. Ve se seu anti virus nao ta atrapalhando, no meu PC nao funciona se nao desativa-lo
  3. Não sei explicar o porque, mas tem a ver com o tamanho da memoria ocupada por um float. Usa Double no lugar do float, assim ele vai pegar o valor certinho. e na hora do scanf e do printf voce usa a mascara %lf
  4. O Getch() recebe o caracter, ou seja, a posição do que digitar na tabela ASCII, como o numero 1 esta na posição 49 e o numero 2 na posição 50 da tabela voce faz assim no seu codigo: if(jog==49) ... elseif(jog==50) ... while(jog!=49&&jog!=50); //Aqui voce tem que colocar o && em vez de ||, porque sempre vai ser diferente de um dos dois valores. ... Ou voce pode simplesmente mudar só a hora de receber seu int assim: jog=getch()-48; // Pois digitando 1 ou 2 ele receberá 49 ou 50 respectivamente na tabela ASCII, subtraindo 48 vai ficar 1 e 2 normal. ... E mais uma coisa na hora de receber a string voce só coloca o nome do vetor assim: scanf("%[^\n]s",jogador1); ... scanf("%[^\n]s",jogador2); ... Na hora de imprimir tambem voce tem que fazer assim por ser uma string: printf("%s",jogador1); //%c só imprimiria uma letra, o %s imprime a palavra toda ... printf("%s",jogador2); ... E desculpa, mas nao entendi aquele while true, se for para gerar um ciclo infinito até que o usuario digite "S" no meu só funcionou fazendo: while(1); ... A, e mais uma coisa que percebi, o Multiplayer (2) ta recebendo só 1 jogador enquanto que o singleplayer(1) ta recebendo os 2, ou seja, voce inverteu os IF's do codigo
  5. Poderia dar um exemplo? Pesquisei no google e nao entendi nada.
  6. Gostaria de saber se existe algum método de limitar o tempo que um usuário tem para digitar algo. Por exemplo, se o tempo acabar eu queria que o codigo passasse para a proxima parte depois do scanf (getch) mesmo sem o usuario digitar nada. Pode ser também algum comando que fica executando um ciclo até que o usuario digite algo no teclado.
  7. Obrigado, funcionou o %s, mas nao entendi porque. e o break eu realmente tinha esquecido, mas mexer com muitas linhas me deixou confuso rsrs No fim o codigo ficou assim: #include<stdio.h>int main(){ int op; // opção double vi, pc, vf; // valor inicial, porcentagem, valor final char jd; // juros ou desconto char dg = '%'; // nao sei imprimeir %, entao usei uma variavel para isso printf("Digite:\n1 para descobrir o valor inicial\n2 para descobrir a porcentagem de juros ou desconto\n3 para descobrir o valor total\n"); scanf("%d", &op); switch (op){ case 1: printf("digite + para juros ou - para descontos\n"); scanf("%s", &jd); switch (jd){ case '+': printf("entre com o juros\n"); scanf("%lf", &pc); printf("entre com o valor final\n"); scanf("%lf", &vf); vi=vf*100/(100+pc); printf("\n\n\n"); printf("Valor inicial = R$ %.2lf\n", vi); printf("Juros de %.2lf%c\n", pc, dg); printf("Valor final = R$ %.2lf\n", vf); printf("\n\n\n"); break; case '-': printf("entre com o desconto\n"); scanf("%lf", &pc); printf("entre com o valor final\n"); scanf("%lf", &vf); vi=vf*100/(100-pc); printf("\n\n\n"); printf("Valor inicial = R$ %.2lf\n", vi); printf("Desconto de %.2lf%c\n", pc, dg); printf("Valor final = R$ %.2lf\n", vf); printf("\n\n\n"); break; } break; case 2: printf("Entre com o valor inicial\n"); scanf("%lf", &vi); printf("Entre com o valor final\n"); scanf("%lf", &vf); pc=100*(vf-vi)/vi; if (pc>0){ printf("Valor inicial = R$ %.2lf\n", vi); printf("Juros de %.2lf%c\n", pc, dg); printf("Valor final = R$ %.2lf\n", vf); } else if (pc<0){ pc=pc*(-1); printf("Valor inicial = R$ %.2lf\n", vi); printf("Desconto de %.2lf%c\n", pc, dg); printf("Valor final = R$ %.2lf\n", vf); } else{ printf("Valor inicial = R$ %.2lf\n", vi); printf("Juros ou desconto nulo"); printf("Valor final = R$ %.2lf\n", vf); } break; case 3: printf("Digite + para juros ou - para desconto"); scanf("%s", &jd); switch (jd){ case '+': printf("Entre com o valor inicial\n"); scanf("%lf", &vi); printf("Entre com o juros\n"); scanf("%lf", &pc); vf=vi*(100+pc)/100; printf("Valor inicial = R$ %.2lf\n", vi); printf("Juros de %.2lf%c\n", pc, dg); printf("Valor final = R$%.2lf\n", vf); break; case '-': printf("Entre com o valor inicial\n"); scanf("%lf", &vi); printf("Entre com o desconto\n"); scanf("%lf", &pc); vf=vi*(100-pc)/100; printf("Valor inicial = R$ %.2lf\n", vi); printf("Desconto de %.2lf%c\n", pc, dg); printf("Valor final = R$%.2lf\n", vf); break; } break; default: printf("Digite um numero valido"); break; } return 0;} Só faltou ajeitar alguns espaços entre as entradas e as saidas, mas funcionou. Obrigado.
  8. #include<stdio.h>int main(){ int op; double vi, pc, vf; char jd; char dg = '%'; printf("Digite:\n1 para descobrir o valor inicial\n2 para descobrir a porcentagem de juros ou desconto\n3 para descobrir o valor total\n"); scanf("%d", &op); if (op==1){ printf("digite + para juros ou - para descontos\n"); scanf("%c", &jd); switch (jd){ case '+': printf("entre com o juros\n"); scanf("%lf", &pc); printf("entre com o valor final\n"); scanf("%lf", &vf); vi=vf*100/(100+pc); printf("\n\n\n"); printf("Valor inicial = R$ %.2lf\n", vi); printf("Juros de %.2lf%c\n", pc, dg); printf("Valor final = R$ %.2lf\n", vf); printf("\n\n\n"); break; case '-': printf("entre com o desconto\n"); scanf("%lf", &pc); printf("entre com o valor final\n"); scanf("%lf", &vf); vi=vf*100/(100-pc); printf("\n\n\n"); printf("Valor inicial = R$ %.2lf\n", vi); printf("Desconto de %.2lf%c\n", pc, dg); printf("Valor final = R$ %.2lf\n", vf); printf("\n\n\n"); break; } } else if (op==2) { printf("ainda nao esta pronto"); } else if (op==3) { printf("ainda nao esta pronto"); } else { printf("digite um numero valido"); } return 0;} primeiro eu tentei nesse metodo de cima usando o if else, depois tentei o metodo de baixo usando switch para escolher as opções. #include<stdio.h>int main(){ int op; // opção double vi, pc, vf; // valor inicial, porcentagem, valor final char jd; // juros ou desconto char dg = '%'; // nao sei imprimeir %, então usei uma variavel para isso printf("Digite:\n1 para descobrir o valor inicial\n2 para descobrir a porcentagem de juros ou desconto\n3 para descobrir o valor total\n"); scanf("%d", &op); switch (op){ case 1: printf("digite + para juros ou - para descontos\n"); scanf("%c", &jd); switch (jd){ case '+': printf("entre com o juros\n"); scanf("%lf", &pc); printf("entre com o valor final\n"); scanf("%lf", &vf); vi=vf*100/(100+pc); printf("\n\n\n"); printf("Valor inicial = R$ %.2lf\n", vi); printf("Juros de %.2lf%c\n", pc, dg); printf("Valor final = R$ %.2lf\n", vf); printf("\n\n\n"); break; case '-': printf("entre com o desconto\n"); scanf("%lf", &pc); printf("entre com o valor final\n"); scanf("%lf", &vf); vi=vf*100/(100-pc); printf("\n\n\n"); printf("Valor inicial = R$ %.2lf\n", vi); printf("Desconto de %.2lf%c\n", pc, dg); printf("Valor final = R$ %.2lf\n", vf); printf("\n\n\n"); break; } case 2: printf("em desenvolvimento"); break; case 3: printf("desenvolvendo"); break; default: printf("Digite um numero valido"); break; } return 0;} quando eu digito a opção 1 ele simplesmente imprime: digite + para juros ou - para descontosem desenvolvimento e finaliza o codigo. Sou iniciante em programação, por isso nao consegui resolver o erro sozinho.

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!