Ir para conteúdo
Fórum Script Brasil

Celestino Alona

Membros
  • Total de itens

    7
  • Registro em

  • Última visita

Sobre Celestino Alona

Últimos Visitantes

O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.

Celestino Alona's Achievements

0

Reputação

  1. Boa tarde, gostaria de deixar aqui minha dúvida sobre um código que fiz. É um jogo da forca e ele até está funcionando bem, porém quando o usuário insere um caractere especial, ele simplesmente não faz a leitura. Por exemplo, se a palavra a ser adivinhada pelo(s) jogador(es) for " óculos ", na hora que o usuário inserir uma letra com o respectivo acento ( no caso é o acento agudo no 'o' ) irá aparecer na tela qualquer coisa, menos a letra 'O' com o acento. Deve ficar mais claro com o código (assim espero kkk) #include<stdio.h> #include<stdlib.h> #include<locale.h> #include<string.h> #include<conio.h> main() { setlocale(LC_ALL,"portuguese"); char tentativa, palavra[200], incognita[200]; int cont=0, quant_cp, final=0, aux=0, ind_copy=0; printf("\n\t\t\t\t\tJOGO DA FORCA"); printf("\n\nInsira a palavra a ser adivinhada : "); setbuf(stdin,NULL); gets(palavra); quant_cp = strlen(palavra); // Pega a quantidade de caracteres da palavra inserida system("cls"); printf("\n\t\t\t\t\tJOGO DA FORCA"); printf("\n\nLembre-se de que espaços são como letras."); printf("\n\n\n\n\t\t"); for(cont=0; cont<quant_cp; cont++) { incognita[cont] = '_'; // Coloca "underlines" em um vetor para ser impresso // de acordo com a quantidade de caracteres } do { system("cls"); printf("\n\t\t\t\t\tJOGO DA FORCA"); printf("\n\nLembre-se de que espaços são como letras."); printf("\n\n\n\n\t"); for(cont=0; cont<quant_cp; cont++) { printf("%c ", incognita[cont]); // Imprime os "underlines" na tela } printf("\n\nInsira uma letra : "); setbuf(stdin,NULL); tentativa = getch(); for(cont=0; cont<quant_cp; cont++) // Verificar se a letra foi inserida anteriormente, evitando o término { // do jogo de forma indesejada. if(tentativa == incognita[cont]) { goto jump; } } for(cont=0; cont<quant_cp; cont++) { if(tentativa == palavra[cont]) { incognita[cont] = tentativa; // Armazena a letra correta em icognita final++; // Faz o incremento. Quando "final" tiver um valor igual à quantidade de caracteres (quant_cp) da palavra inserida // o programa é encerrado. } } jump: for(cont=0; cont<quant_cp; cont++) { printf("%c ", incognita[cont]); } } while(final!=quant_cp); printf("\n\nParabéns, você venceu !"); return 0; }
  2. Bom dia. Estou fazendo meu estudo sobre ponteiros e no livro que eu estou usando para consultar está um código que, apesar de estar funcionando bem, não fez muito sentido para mim. Se alguém puder me ajudar a entende-lo vai ser ótimo. #include<stdio.h> #include<stdlib.h> #include<locale.h> main() { setlocale(LC_ALL,"portuguese"); char s[100]; char *ptr = s; /* Aponta para o primeiro caractere de 's', pois o nome da variável de um vetor sempre é o endereço do primeiro elemento daquele vetor */ printf("Introduza uma String : "); fgets(s,100,stdin); if(*ptr == '\0') /* String vazia */ { return 0; } /* Imprimir a String normalmente */ while(*ptr!='\0') { putchar(*ptr++); } /* Imprimir a String ao contrário */ while(ptr>=s) /* Enquanto ptr for >= que &s[0] */ { putchar(*ptr--); } return 0; }
  3. Bom dia pessoal. Estou com um problema na hora da execução de um programa simples que fiz durante meu estudo sobre "structs". Simplesmente o programa não faz a leitura correta das letras que possuem acento. #include<stdio.h> #include<stdlib.h> #include<locale.h> main() { setlocale(LC_ALL,"portuguese"); struct dados { char name[40], disciplina[30]; float nota1, nota2; } aluno; printf("\n\t\t\t\t------------ Cadastro de Aluno ------------\n"); printf("\nInsira seu nome....: "); fflush(stdin); fgets(aluno.name, 40, stdin); printf("\n\nDisciplina.........: "); fflush(stdin); fgets(aluno.disciplina, 30, stdin); printf("\n\nInsira a 1° nota...: "); scanf("%f",&aluno.nota1); printf("\n\nInsira a 2° nota...: "); scanf("%f",&aluno.nota2); printf("\n\n"); printf("\n\t\t\t\t------------ Lendo dados inseridos ------------\n"); printf("\nNome...........: %s\n", aluno.name); printf("Disciplina.....: %s\n", aluno.disciplina); printf("Nota 1.........: %.2f\n", aluno.nota1); printf("Nota 2.........: %.2f\n", aluno.nota2); return 0; }
  4. Boa noite, cadê o código? Já resolveu o problema ?
  5. Boa tarde, estou tendo dificuldade de aplicar uma ideia que vi aqui no fórum. A ideia seria o usuário escolher a quantidade de números (no programas é a quantidade de notas) que cabem num vetor, interagindo diretamente com a variável logo na declaração dela. #include<stdio.h> #include<stdlib.h> #include<locale.h> main() { setlocale(LC_ALL,"portuguese"); int n=0, i=0; printf("Insira quantas notas deseja inserir : "); int vetor[scanf("%d",&n)]; // Variável "vetor" recebe o número digitado pelo usuário coloca como quantidade de elementos no colchete. for(i=0; i<n; i++) { printf("Insira a primeira nota : "); scanf("%d",vetor); } for(i=0; i<n; i++) { printf(" [%d] --> %d\n",i+1, vetor); } return 0; }
  6. Bom dia, estou com um problema num código que não consigo identificar e isso já está me deixando maluco. Era pra ser um código onde o usuário digitaria 10 números, depois escolheria um dos números digitados e seria mostrado na tela seus dez primeiros múltiplos. A seguir o código que eu fiz : OBS: JÁ RESOLVI O PROBLEMA E CONSERTEI O CÓDIGO ABAIXO. #include<stdio.h> #include<stdlib.h> #include<locale.h> main() { setlocale(LC_ALL,"portuguese"); inicio: int num[10], contador=0, num_escolhido=0, loop_verific=0, opcao=0, x_multi=0; int cont2=0, aux=0; printf("\n*============================================================================*\n"); printf("| Data : 15/06/2018 |\n"); printf("| Programador : Anderson Dias C. Nieto |\n"); printf("| Objetivo : Mostrar os múltiplos de um dos números inseridos pelo usuário. |\n"); printf("============================================================================\n\n"); for(contador=0; contador<10; contador++) { printf("Insira %d° número : ",contador+1); setbuf(stdin,NULL); scanf("%d",&num[contador]); } insira: printf("\n\nInsira o número escolhido e será lhe mostrado seus múltiplos : "); scanf("%d",&num_escolhido); if(num_escolhido>=0) { for(loop_verific=0; loop_verific<10; loop_verific++) { if(num_escolhido==num[loop_verific]) // Verifica se o número escolhido realmente foi inserido anteriormente. { for(cont2=0; cont2 < 10; cont2++ ) { aux+=num_escolhido; //Faz a soma printf("%d\n",aux); // Mostra o resultado da soma (múltiplos) } goto exit; // Sai do "loop", pois é apenas os múltiplos de UM número } } } else { for(loop_verific=0; loop_verific<10; loop_verific++) { if(num_escolhido==num[loop_verific]) // Verifica se o número escolhido realmente foi inserido anteriormente. { for(cont2=0; cont2 < 10; cont2++ ) { cont2==0 ? printf("%d\n",cont2):printf("-%d\n",cont2); } goto exit; } } } exit: printf("\n\nOpções\n\n1- Inserir os números novamente\n2- Escolher outro número\n3-Sair do programa\nOpção : "); setbuf(stdin,NULL); scanf("%d",&opcao); switch(opcao) { case 1: system("cls"); goto inicio; break; case 2: goto insira; break; case 3: return 0; } return 0; }
  7. Olá, acabei de criar uma conta justamente pra poder tentar te ajudar kkkk. Espero que já tenha conseguido a resposta, mas caso não tenha aqui vai uma. o system("cls") ,até onde eu sei, apenas irá limpar tudo o que foi escrito na tela (pelo usuário ou por você, através do printf) até o "system("cls")". O que você precisa é usar um "goto" no seu código ou, se quiser mais completo, use um "scanf" pra pegar um valor digitado pelo usuário e caso esse valor seja , por exemplo, 20, o "goto" irá fazer com que o usuário volte para um ponto de sua escolha no código. Aqui tem um exemplo em C de um código simples que eu fiz agora. #include<stdio.h> #include<stdlib.h> #include<locale.h> main() { setlocale(LC_ALL,"portuguese"); int cont=0; char name[50]; inicio: // "goto" irá "jogar" o usuário para "inicio" caso a condição do if seja atendida printf("Insira um nome : "); setbuf(stdin,NULL); // Limpa o buffer gets(name); printf("Insira sua idade : "); scanf("%d",&cont); if(cont>18) // Se a idade for maior do que 18, o if é ativado e, junto com ele, o "goto" também. { system("cls"); goto inicio; } return 0; }
×
×
  • Criar Novo...