MassakiMsk
Membro Pleno-
Posts
472 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
Tudo que MassakiMsk postou
-
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); } }}
-
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
-
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
-
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
-
Poderia dar um exemplo? Pesquisei no google e nao entendi nada.
-
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.
-
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.
-
#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