Ir ao conteúdo
  • Cadastre-se

MassakiMsk

Membro Pleno
  • Posts

    470
  • Cadastrado em

  • Última visita

posts postados por MassakiMsk

  1. @Simon Viegas Ficaria assim mais ou menos?

     

    #include <windows.h>
    #include <conio.h>
    
    void introducao ()
    {
        char frase2[] = "Você é um almirante que tem a missão de derrubar as embarcações inimigas\ne dar vantagem para o seu país na guerra";
        int i, delay = 20;
    
    
        for(i = 0; frase2[i] != '\0'; i++) {
            putchar(frase2[i]);
            Sleep(delay);
            if(kbhit())
                delay = 0;
        }
        getchar();
    }
    
    int main()
    {
        introducao();
    }

     

  2. Pode fazer um for que imprime uma letra de cada vez e espera um certo tempo. Mas enquanto a frase não terminar o programa fica "travado".

     

    #include <windows.h> //para a funcao Sleep()
    
    void introducao ()
    {
        char frase2[] = "Você é um almirante que tem a missão de derrubar as embarcações inimigas\ne dar vantagem para o seu país na guerra";
        int i;
    
        for(i = 0; frase2[i] != '\0'; i++) {
            putchar(frase2[i]);
            Sleep(20); //delay em milisegundos
        }
        
    }

     

  3. 2 erros que achei:

    -Você não está zerando a variável soma.

    -Os digitos verificadores estão nas posições 9 e 10, você usou 10 e 11.

     

    int verificaCPF (char *y)
    {
        int soma, i, ver;
    
        soma = 0;
        for(i=2; i<11; i++)
            soma+=i*(y[10-i]-48);
        if(soma%11==0 || soma%11==1)
            ver=0;
        else
            ver=11-soma%11;
    
        if(ver!=y[9]-48)
            return -1;
        else {
                soma = 0;
            for(i=2; i<12; i++)
                soma+=i*(y[11-i]-48);
            if(soma%11==0 || soma%11==1)
                ver=0;
            else
                ver=11-soma%11;
    
            if(ver!=y[10]-48)
                return -1;
            return 1;
        }
    }

    O código é o seu, só dei uma alteradinha para eu entender melhor com a identação correta.

    Com o meu CPF funcionou, agora teria que testar com outros para ver se está certo.

     

     

    Também fiz um seguindo a lógica desse site http://www.somatematica.com.br/faq/cpf.php

    e ficou assim

    int verificaCPF(char *y)
    {
        int j, k, i;
    
        for(j = 0, i = 0; i < 9; i++)
            j += (y[i] - 48) * (10 - i);
        j %= 11;
        if(j == 0 || j == 1)
            j = 0;
        else
            j = 11 - j;
    
        for(k = 0, i = 0; i < 8; i++)
            k += (y[i] - 48) * (11 - i);
        k %= 11;
        if(k == 0 || k == 1)
            k = 0;
        else
            k = 11 - k;
    
        if(y[9] - 48 != j || y[10] - 48 != k)
            return -1;
        return 1;
    }

     

    • Curtir 2
  4. A unica coisa errada é o lugar do contador = -1;

    Ela tem que estar assim

     

    if (texto[caractere] == ' ') {
      if (contador>=n) {
        for (j=posini; j<caractere; j++) printf("%c", texto[j]);
        printf("\n");
      }
      contador=-1;
      posini=caractere+1;
    }

    Do jeito que estava antes não zerava quando a palavra anterior tivesse menos de 8 caracteres.

    • Curtir 1
  5. #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        char s[20];
    
        scanf("%[^\n]s",s);
        printf("-%s-\n", s);
        getchar();
    
        gets(s);
        printf("-%s-\n", s);\
    }

    Doi exemplos que eu conheço. Se usar o scanf tem que apagar o enter que ficou no buffer, por isso coloquei um getchar().

    Se quiser também pode pegar caracter por caracter até o enter.

    • Curtir 1
  6. Uma dica é fazer passo a passo. por exemplo:

     

    -Carregar e desenhar o mapa

    -Desenhar e movimentar o player

    -Verificar colisao com o mapa

    -gerar frutinhas

    -verificar colisao entre player-frutinhas

    -verificar vitoria quando as frutas no mapa acabarem. 

    -Gerar os fantasmas com movimentacao aleatoria (quando o fantasma bate na parede a proxima direcao é aleatoria) 

    -Verificar game over com colisao entre fantasma-player

    -fazer aquelas pastilhas que deixam os fantasmas comestiveis. 

    -verificar colisao entre player-fantasma comestivel

     

    é só uma ideia isso.

    • Curtir 3
  7. Da proxima vez poste o codigo com a tag CODE por favor

    #include <stdio.h>
    #include <stdlib.h>
    
    void main()
    {
        int vetorA[5], vetorB[5];
        int z, i, y;
    
        for(z=0; z<5; z++)
        {
            scanf("%d", &vetorA[z]); //Lê cada valor do vetorA
        }
    
        for(z=0; z<5; z++)
        {
            y = 0; //y tem que ser zerado a cada ciclo pois é a variável que vai acumular o somatório de cada valor
            for(i = 1; i <= vetorA[z]; i++) { //i vau de 1 até o valor continudo em vetorA[z]
                y += i; //Acumula o valor de i em y
            }
            vetorB[z] = y; //Salva o valor de y no vatorB
        }
        printf("\n\n"); //Quebra de linha
    
        for(z=0; z<5; z++)
        {
            printf("%d  ->  %d\n", vetorA[z], vetorB[z]); //Exibe os dois vetores lado a lado
        }
    }

    Qualquer duvida é só dizer

     

    • Curtir 2
  8. int main()
    {
        int dia, mes, ano;
        float peso;
        setlocale(LC_ALL, "Portuguese");
        do
        {
            printf("Digite o dia de nascimento da criança (Exemplo: 02/04/2016, digite 2):\n");
            while(scanf("%d", &dia) == 0) //Quando o valor lido corresponde ao tipo esperado o retorno do scanf é 1. Do contrario algo deu errado.
            {
                printf("Entrada invalida, tente novamente:\n");
                getchar();
            }
        }
        while(dia<1 || dia>31);
    }

     

    adicionado 10 minutos depois

    Acho que o mais certo seria

    Citação

    while(scanf("%d", &dia) != 1)

    Teria que testar para ver

    • Curtir 1
  9. Você pode colocar quantos argumentos quiser dentro de cada campo do for, é só separar por virgula.

    é igual esse exemplo que você deu mesmo, é que tenho mania de juntar tudo que dá rsrsrs

    Citação
    
    		n=i;
    		for(j=0; j<m; j++) //j é a variavel que conta quantos impares foram somados e n sao os impares
    		{
    		   soma += n; //acumula a soma dos impares consecultivos
    		   n+=2
    		}

     

     

    • Curtir 1
  10. #include<stdio.h>
    #include<math.h>
    main ()
    {
        int m,n,i,j,soma;
        scanf("%d",&m);
        for (i=1;;i+=2) //i começa como 1, soma 2 a cada ciclo e nao para até que uma parada seja forçada
        {
            soma = 0; //reseta a soma a cada ciclo
            for(n=i, j=0; j<m; n+=2, j++) //j é a variavel que conta quantos impares foram somados e n sao os impares
            {
                soma += n; //acumula a soma dos impares consecultivos
            }
            if(soma == m*m*m) { //compara se a soma deu o valor desejado
                printf("%d*%d*%d = %d", m, m, m, i);
                for(n=i+2, j=1; j<m; n+=2, j++) {
                    printf("+%d", n);
                }
                printf("\n");
                break; //força a parada do for inicial
            }
        }
    }

    Deve ter jeitos melhores de resolver, mas foi isso que consegui agora

    • Obrigado 1

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!