vangodp

Membros
  • Content Count

    788
  • Joined

  • Last visited

Community Reputation

0 Neutro

About vangodp

Perfil

  • Gender
    Male
  • Location
    Spain
  • Interests
    ]—[””I””IC++I||I||]>——-

Contatos

  • Skype
    vangodp vamp

Recent Profile Visitors

3190 profile views
  1. vangodp

    Como resolver??

    Ta passando deveres aqui pra galera?
  2. #include <stdio.h> #include <stdlib.h> #include <stdbool.h> //Usar boleanos(true e false) #include <limits.h> //UINT_MAX int main() { unsigned int n; unsigned int maior = 0; unsigned int menor = UINT_MAX; bool sair = false; printf ( "%u e %u\n\n", maior, menor ); //Imprimimos só para ver o que há while ( !sair ) { //Por enquanto não sair... printf ( "\nInsira um valor: " ); scanf ( "%u", &n ); if ( n == 0 ) { sair = true; continue; } //Si foi zero queremos sair, voltamos para o while e obviamente sairemos do programa //si não foi zero if ( n > maior ) { maior = n; } if ( n < menor ) { menor = n; } printf ( "%u e %u\n", maior, menor ); } return 0; } Se tiver duvidas pergunte
  3. Vou comentar os pontos que vejo que estão errados. Nos scanfs não leva & na hora de ler as strings nem os ponteiros, tire o & de todos os scanfs que forem ler strings ou ponteiros. Como não conheço ninguém que entre ponteiros por teclado por agora basta você lembrar que strings não levam & na hora de ler, só os int, float, char etc levam o & adiante no scanf. Certamente seu programa também está dando problema na hora de ler strings, isso é devido a causa de ter lixo no buffer. Procure um bom tutorial de "como limpar o buffer do teclado em C". Seja o que for não use fflush junto com stdin como se indica em muitos lugares, se ver fflush(stdin) onde entrar nem precisa ler, saia fora e busque outra pagina. fflush+ stdin aparentemente funcionam mas tem varios problemas, Recomendaria você ler alguns posts: https://forum.imasters.com.br/topic/336835-tutorial-systempause-e-fflushstdin/ https://forum.scriptbrasil.com.br/profile/112983-vangodp/?status=3184&type=status https://www.clubedohardware.com.br/forums/topic/1186013-c-atribuição-de-strings-a-partir-de-uma-entrada/?tab=comments#comment-6522965 char funcional[1]; só tem 1 char? >_<
  4. Uma boa forma é usando Autômato finito determinístico e usar a sintaxes que se pode observar aqui: "Syntaxe de um email". Em Autômato finito determinístico serve, entre muitas coisas, para validar uma string e saber se ela idêntica a outra que temos. Por sorte tenho um exemplo. Imaginamos umas quantas palavras ou frases(neste exemplo somente veremos algumas palavras): "char" "for" "float" Esses seriam os caminhos a seguir para validar essas três palavras. Então nosso código seria esse mais ou menos: #include <stdio.h> #define TAM 100 void qInicio ( char palavra[TAM]); void q0( int contador, char palavra[TAM]); void q1( int contador, char palavra[TAM]); void q2( int contador, char palavra[TAM]); void q3( int contador, char palavra[TAM]); void q4( int contador, char palavra[TAM]); void q5( int contador, char palavra[TAM]); void q6( int contador, char palavra[TAM]); void q7( int contador, char palavra[TAM]); void q8( int contador, char palavra[TAM]); void q9( int contador, char palavra[TAM]); void qFim(); void qErro(); int main(){ char palavra[TAM] = "for"; //casos de comprovação: o programa só aceitará "char", "for" ou "float". Mas você pode por qualquer frase qInicio(palavra); return 0; } void qInicio ( char palavra[TAM] ){ int contador = 0; q0( contador, palavra ); } void q0( int contador, char palavra[TAM] ){ if ( contador < TAM ){ if ( palavra[contador] == 'f' ){ q1( ++contador, palavra ); }else if (palavra[contador] == 'c'){ q8( ++contador, palavra ); }else{ qErro(); } } } void q1( int contador, char palavra[TAM] ){ if ( contador < TAM ){ if ( palavra[contador] == 'l' ){ q2( ++contador, palavra ); }else if (palavra[contador] == 'o'){ q3( ++contador, palavra ); }else{ qErro(); } } } void q2( int contador, char palavra[TAM] ){ if ( palavra[contador] == 'o' ) { q5 ( ++contador, palavra ); } else { qErro(); } } void q3( int contador, char palavra[TAM] ){ if ( palavra[contador] == 'r' ) { q4 ( ++contador, palavra ); } else { qErro(); } } void q4( int contador, char palavra[TAM] ){ qFim(); } void q5( int contador, char palavra[TAM] ){ if ( palavra[contador] == 'a' ) { q6 ( ++contador, palavra ); } else { qErro(); } } void q6( int contador, char palavra[TAM] ){ if ( palavra[contador] == 't' ) { q7 ( ++contador, palavra ); } else { qErro(); } } void q7( int contador, char palavra[TAM] ){ qFim(); } void q8( int contador, char palavra[TAM] ){ if ( contador < TAM ){ if ( palavra[contador] == 'h' ){ q9( ++contador, palavra ); }else{ qErro(); } } } void q9( int contador, char palavra[TAM] ){ if ( palavra[contador] == 'a' ) { q3 ( ++contador, palavra ); } else { qErro(); } } void qErro(){ printf("Palavra regeitada pelo automata!\n"); } void qFim(){ printf("Palavra Aceita pelo automata!\n"); } Pode inserir qualquer palavra na string que esta na primeira linha do for porem o programa só aceitará uma das 3 que citei no inicio. De uma estudada e se tiver duvidas pergunte. Tente resolver com isso pois é muito potente esse sistema.
  5. trocar &hazzu.n por hazzu.n no printf
  6. para saber se o arquivo ta vazio ou não da uma olhada no tamanho do arquivo. Averigue se o tamanho do arquivo é o mesmo do sizeof da tal struct que você enviou para o arquivo. você pode usar um editor hexadecimal para ver o conteúdo do tal arquivo binário. Ah!!! E o mais importante é que se é arquivo binario o modo de abertura deveria ser w+b 😉
  7. Sempre tenha claro em qual linguagem você está. Dependendo da linguagem você vai ter que traduzir de 1 até 10 em 0 até 9. Porque em algumas linguagens começa a contar de zero. Parece uma coisa banal mas não é... os índices em C/C++ lembre que você está trabalhando diretamente com a memória ram, qualquer erro é fatal.😉
  8. o pior de todos os erros é esse i <= 10. Se você tem 10 posições você conta desde 0 até 10-1, ou seja 9. O correto é i < 10, você ta estourando os índices tentando ler e escrever além do que você reservou.
  9. Isso é errado, usar fflush junto com stdin. fflush foi concebido para ser usado com stdout, o fato de que funcione é pura sorte. Existe uma infinidade de formas sobre como limpar o buffer do teclado na internet. acho que você deveria dar uma olhada aqui: https://forum.imasters.com.br/topic/336835-tutorial-systempause-e-fflushstdin/ É uma leitura indispensável já que lhe fará compreender melhor sobre o buffer do teclado, que é um problema que você vai se enfrentar a diário, por isso é indispensável. Recomendo ler com atenção e ir pondo em prática tudo o que for vendo neste post.
  10. si você declarou p como um vetor p[1000] na linha gets ( p.nome ) ; o p.nome ta errado. O p.nome é um vetor e não uma variável normal, o correto seria p[x].nome, sendo o x o índice desejado. Ademais use o botão <> para postar códigos-fonte
  11. si entrar no if simplesmente termina aí a função, com um return 1, não há nada mais a analisar. Caso sejam diferentes entra no else e se invoca a si mesma(recursividade).
  12. n da para ver as imagens. suba a um servidor de fotos e ponha o link aqui. e use o botao <> para o código
  13. Use o botão <> para postar códigos