Ir para conteúdo
Fórum Script Brasil

vangodp

Membros
  • Total de itens

    884
  • Registro em

  • Última visita

Tudo que vangodp postou

  1. vc precisa buscar um tileset e substituir cada letra por uma parte do tal tileset: https://www.google.es/search?q=pacman+tileset&num=100&newwindow=1&client=firefox-b&tbm=isch&tbo=u&source=univ&sa=X&ved=0ahUKEwjVxKyM0qTTAhXCDxoKHX4jBnkQsAQIJA
  2. suponho que ao comparar um double com um int o erro está nisso. A Solução arrumada de tal maneira funcionou corretamente: #include <stdio.h> int main() { float f; scanf ( "%f", &f ); if(f < 0.0000) printf("Fora de intervalo\n"); else if(f >= 0.0000 && f <= 25.0000) printf("Intervalo [0,25]\n"); else if(f > 25.0000 && f <=50.0000) printf("Intervalo (25,50]\n"); else if(f > 50.0000 && f <=75.0000) printf("Intervalo (50,75]\n"); else if(f > 75.0000 && f <=100.0000) printf("Intervalo (75,100]\n"); else if(f > 100.0000) printf("Fora de intervalo\n"); return 0; } Para você fazer uma ideia do problema veja isso: #include <stdio.h> int main() { float f = 3.14; if (f == 3.14) printf( "igual"); else printf( "diferente"); return 0; } Da errado não é?(diferente) Pois é... o que acontece nesse caso é que você ta comparando f que é um float com 3.14 que é uma literal e nesse caso a literal é como se fosse um double. Se eu trocar o tipo de dado de f por double funcionaria. Vamos ver: #include <stdio.h> int main() { double f = 3.14; if (f == 3.14) printf( "igual"); else printf( "diferente"); return 0; } Agora trata-se de comparar 2 doubles e então essa comparação é correta. Outra forma de solucionar o problema é fazendo um cast desta forma: #include <stdio.h> int main() { float f = 3.14; if (f == (float)3.14) printf( "igual"); else printf( "diferente"); return 0; } Nesse caso estamos informando que o valor literal 3.14 dentro do if trata-se explicitamente de um float, e não de um double, que é tomado de forma não transparente ao usuário(implicitamente) por não expor de forma clara de que tipo de dado o usuario quer que tome a literal já que 3.14 pode ser tanto float como double, e o compilador toma como double se o usuario não indicar que é float ou outra coisa, já que pode ser char, int, etc. >_< Pode ser feito tambem if (f == 3.14f).
  3. #include <iostream> #include <list> using namespace std; int main ( void ) { //Declaração de variáveis. list<int> L1[3]; list<int>::iterator it; list<int> *P1; int i, j; //Inicializa as três listas. for ( i = 0; i < 3; i++ ) { for ( j = 0; j < 4; j++ ) { L1[i].push_back ( j ); } } L1[2].pop_back(); P1 = L1; for ( i = 0; i < 3; i++ ) { for ( it = (*( L1 + i )).begin(); it != (*( L1 + i )).end(); it++ ) { cout << *it << endl; } cout << endl; } return 0; }
  4. Onde ta a função criatela? Se ficar soltando código a conta gotas fica difícil lhe ajudar >_<
  5. vangodp

    Função Char com Sleep

    #include <stdio.h> #include <stdlib.h> #include<windows.h> int main() { char textogame ( char text[100] ); textogame ( (char*)"Hello world" ); return 0; } void textogame ( char text[100] ) { int i; for ( i = 0; text[i] != '\0'; i++ ) { printf ( "%c", text[i] ); if( text[i] != ' ' ) Sleep ( 1000 ); } } Lembre que toda string tem o caracter '\0' que indica o fim da palavra/frase, em teoria vc deve imprimir por enquanto text for diferente a '\0'. E uma modificação que acho mais atraente é pausar somente quando a letra for diferente de um espaço. if( text[i] != ' ' ) Sleep ( 1000 );
  6. Fica meio difícil lhe ajudar sem saber o que vc ta querendo fazer não acha?
  7. Isso dai é algo complicado de explicar vei. Da uma olhada ai e se tiver alguma duvida entre aqui e pergunte.
  8. vangodp

    Ola ajuda porfavor =D

    #include<stdio.h> #include<string.h> #include<stdlib.h> char* invchar ( char str[10], char *str2 ) { int a = 0, i = 0; // rafael // 012345 for ( i = ( strlen ( str ) - 1 ); i >= 0; i-- ) { str2[a] = str[i]; a++; } return str2; } int main() { char str2[10], str[10]; printf ( "digite a palavra a ser invertida" ); gets ( str ); printf ( "o inverso eh %s", invchar ( str, str2 ) ); } vc ta retornando um char e o especificador %s espera char*
  9. vc tem varias formas de declarar múltiplas variáveis. //Normal int a; int b; int c; ... Ou pode fazer isso na mesma linha: int a, b, c... O fato que faço: int maior=0, a,b,c,d,e; não quer dizer que a maior eu atribui o valor de a,b,c,d, e. quer dizer que declarei maior, a,b,c,d,e porem só dei valor inicial a maior. Em outras palavras fazer int maior=0, a,b,c,d,e; é a mesma coisa que fazer: int maior; maior = 0; int a; int b; int c; int d; int e; Porem em uma só linha. E não é a unica forma... olhe essa: int maior = 0, a, b, c, d, e; Não confunda declaração com atribuição. ;)
  10. vc pode declarar uma variável chamada int maior = 0; Dai vc lê por exemplo a variavel int a com scanf igual vc está fazendo, depois de ler faça o seguinte: if(a>maior) maior = a; Logo repita para a variável b, depois c... Por ultimo a variável "maior" vai conter o maior numero. int maior=0, a,b,c,d,e; scanf("%d", &a); if(a>maior) maior = a; scanf("%d", &b); if(b>maior) maior = b; ... repita para todas as variáveis. Logo por ultimo imprima "maior".
  11. vangodp

    AJUDA Matriz

    vc podia facilitar explicando o que vc espera que seu programa faça, fica difícil para alguns entender o que vc quer.
  12. é a mesma coisa, a formula é a mesma. se vc tem um numero: int n1 = 22; vc aplica a formula: if (n1 % 2 == 0) printf("%d", n1); faça isso para os 5 numeros. E para o impar: int n1 = 33; if (n1 % 2 != 0) printf("%d", n1); Vc tem que pensar que "if (n1 % 2 == 0) printf("%d", n1)" é como dizer: Se o resto da divisão de n1 dividido por 2 é igual a zero então imprime porque é par. E "if (n1 % 2 != 0) printf("%d", n1)": Se o resto da divisão de n1 dividido por 2 for diferente de zero então imprima pq é ímpar. Entendeu? Vc pode ler unsigned int a, b, c, d, e... e fazer isso que expliquei antes para cada um deles. Faça a prova e me diga como foi. ;)
  13. vc deve usar arrays. Para poder ler 5 numeros: #include<stdio.h> int main() { int array[5] = {0}; //Reservando memoria para 5 inteiros que iniciam com o valor de 0 int i; //pedindo 5 numeros for (i = 0; i<5; i++) { printf("Entre com o %d\xA7 numero: ",i+1 ); scanf("%d%*c", &array[i]); } getchar(); // pausa return 0; } Agora para poder imprimir pares ou impares devemos usar o operador modulo %. O operador modulo retorna o resto de uma divisão, é dizer se eu faço 11/2 a resposta é 5, mas se faço 11%2 a resposta é 1, se o numero for par, qualquer numeroPar % 2 será igual a zero, ou seja n4ao há resto, então: if(numero % 2 == 0) imprime par E if(numero % 2 != 0) imprime ímpar #include<stdio.h> int main() { int array[5] = {0}; //Reservando memoria para 5 inteiros que iniciam com o valor de 0 int i; //pedindo 5 numeros for (i = 0; i<5; i++) { printf("Entre com o %d\xA7 numero: ",i+1 ); scanf("%d%*c", &array[i]); } //imprime pares printf("Pares: "); for (i = 0; i<5; i++) { if(array[i]%2==0){ printf("%d ", array[i]); } } printf("\n\n"); //Imprime impares printf("Impares: "); for (i = 0; i<5; i++) { if(array[i]%2!=0){ printf("%d ", array[i]); } } printf("\n"); getchar(); // pausa return 0; } Guarde esse exemplo e recorde: Qualquer numero % 2 e o resultado sobrar 0, ou seja, for igual a zero, é par, se não é ímpar.
  14. use um laço for que funcione até 20 e ponha dentro o printf. Imprima o índice i que vc usa no laço for como contador 40 vezes para os numero pares, e cada vez que imprimir faça dentro do for if(i%2==0) imprimir i(imprime i somente se for par). E para os números ímpares a mesma coisa, if (i%2!=0) imprimir i(imprime i somente se for ímpar), faça isso 50 vezes. Não entendo o que vc quer. Pode explicar melhor?
  15. vc pode perfeitamente fazer isso em java. Agora se vai ser uma aplicação web então HTML, CSS, javascript, php...
  16. Não sei em outros linguagens mas em C/C++ se começa contando desde 0 até o numero indicado. Por exemplo... se temos um vetor de 100 casinhas começamos a contar desde 0 até 100 menos 1, porque de 0 a 99 são 100 valores os que guarda o vetor. Então se eu declaro um vetor tal como int vetor[100] eu tenho que ler desde vetor[0] até vetor[100-1] que é vetor[99]. Compreendeu? vetor// char vetorInt[6] = {'a','e','i','o','u','\0'}; //leva NULL pq toda string leva NULL ao final Ou como isso é uma string tambem podemos fazer: char vetorInt[6] = "aeiou"; // Nesse caso não precisa por NULL pq o programa ja coloca NULL por vc. //vetor de ints ou floats/doubles etc int vetor[5]={1,2,3,4,5}; float vetor[5]={1.1,2.2,3.3,4.4,5.555}; //Matriz char matriz1[3][6]= { {'a','e','i','o','u','\0'},{'a','e','i','o','u','\0'},{'a','e','i','o','u','\0'} }; char matriz2[3][6]= { {"aeiou"},{"aeiou"},{"aeiou"} }; char matriz3[3][6]= { "aeiou","aeiou","aeiou" }; //vetor de ints ou floats/doubles etc. int matriz[3][5]={{1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5}}; float matriz[3][5]={{1.1,2.2,3.3,4.4,5.555},{1.1,2.2,3.3,4.4,5.555},{1.1,2.2,3.3,4.4,5.555}}; Se inicializar apenas uma parte de um array o resto fica null: char matriz1[3][6]= { {'a','e','i','o','u','\0'}}; é como se fosse: char matriz1[3][6]= { {'a','e','i','o','u','\0'},{'\0','\0','\0','\0','\0','\0'},{'\0','\0','\0','\0','\0','\0'} }; Em fim... certamente existe algumas formas mais de inicializar uma matriz e um vetor, como por exemplo a nulos completamente: char vetor[6]= {0}; char matriz[3][6]= {0}; Eu só coloquei as mais tradicionais. Um array/matriz de vetores também pode inicializar a nulos como na forma anterior. Busque por intenrnet e investigue sobre o tema. pense que uma matriz é como as paginas de um livro. Nessa pagina vc tem varias linhas, por exemplo 10: char matriz[10][...] E cada linha tem 100 letras: char matriz[10][100]; Se eu quero guardar uma palavra na linha 3 eu faço strcpy(matriz[2], "Ola"); //Em C e C++ Ou tenho que ir indicando uma a uma as letras: matriz[2][0]='O'; matriz[2][1]='l'; matriz[2][2]='a'; matriz[2][0]='\0'; // Sempre deve terminar em null Acho que da para fazer uma ideia de como funciona não? Se ainda tiver duvidas pode entrar em https://discord.gg/CtfUywV. É um chat grupal onde tem uns quantos programadores que podem lhe ajudar.
  17. Se vc declarar a estrutura tal como: struct Clientes clientes[50]={0}; Todos os campos estarão estabelecidos a nulos. Se vc comparar o nome com "" vc saberá que não ha nome, e a consequência essa casinha estão vazia. #include<stdio.h> #include <string.h> #include <locale.h> struct Clientes{ char nome[255]; int cpf; char telefone[50]; }; int main(){ setlocale(LC_ALL, "portuguese-brazilian"); struct Clientes clientes[50]={0}; // tudo a nulos if ( strcmp( clientes[0].nome, "" ) == 0 ){ //Compara o nome da primeira casinha de com uma literal de nulos printf("Nome vazio"); // Se entrar aqui é que o nome esta vazio. } return 0; } Então a coisa é manter todas as posições que não estiver usando formatadas, para poder saber se por exemplo o nome não foi seteado ainda.
  18. vangodp

    Funções em C

    Usar variáveis globais pode parecer tentador mas não se engane. Use sempre que possível os parâmetros.
  19. vangodp

    Funções em C

    Poder pode, que seja uma boa ideia, em absoluto que não. Vc deve sempre usar os parâmetros para passar dados. A struct deveria estar criada dentro de main, e vc deveria passar ela por referencia. Em main criamos o array assim: struct Clientes clientes [50]; E se tivermos uma função que receba os parâmetros tipo: void func(struct Clientes *clientes){...} Devemos invocar a função passando o array dessa forma: func(clientes); Pois a função espera a direção da lista(primeiro objeto da lista). É equivalente a func(&clientes[0]);
  20. O que esta pedindo é primeiro reservar memória através da primeira função invocando a mesma, quando retornar a main vc faz a leitura de n elementos que vc reservou e posteriormente vc passa o vetor junto com o tamanho n para a segunda função que imprime. nada complicado exceto pela forma complicada de se explicar. Não se esqueça de liberar a memória liberada. int n; ler n; int *v = reservar(n); ler n numeros imprimirVetor(v, n); free(v); return 0; Esse seriam os passos.
  21. todos os ifs devem ser algo como: if(erros < 1 && resposta == 1 ){ acertos++; } else{ erros++; }
  22. A função Troca não está implementada.
  23. #include <stdio.h> #include <stdlib.h> #include <string.h> int main (){ char op[30]; printf("Vamos ser amgs?: "); scanf("%s", op); if (strcmp(op, "sim")==0){ printf("Legal! Seremos amiguchos.\n"); }else if (strcmp(op, "nao")==0){ printf("=(\n"); }else{ printf("Opcao invalida.\n"); } system("pause"); return 0; } Em vez de ter 2 arrays vc deve ter apenas um. O array vai conter "sim" ou "nao", ou pode que outra coisa se o usuário introduzir outra resposta, mas somente vai conter uma resposta das tres. Após ler a resposta então faremos a comparação usando a função strcmp que pertence a biblioteca string.h. A strcmp serve para comparar 2 strings e se forem identicas a função retorna zero por isso se averigua strcmp(op, "sim")==0, se op conter "sim" strcmp retorna zero, que no caso vai ser comparado com ==0 e isso vai gerar um true entrando no if que contem "Legal! Seremos amiguchos.\n".
×
×
  • Criar Novo...