Ir ao conteúdo
  • Cadastre-se

Asrety

Membro Pleno
  • Posts

    60
  • Cadastrado em

  • Última visita

Tudo que Asrety postou

  1. Sobre os dois iguais, é igual o @devair1010 falou, pois ao colocar somente =, o compilador deve entender que você está tentando inserir um valor, e não comparar, então resolveram colocar == para comparar e não haver confusão. Agora o seu exercício, fiz um aqui também, usando seu código e do @devair1010, espero que ajude em algo. #include <stdio.h> #include <ctype.h> int linhas=10; //variavel global para linhas int colunas=10; //variavel global para colunas void iniciar(int matriz[linhas][colunas]){ //funcao para inicilizar todas posições com 0 for(int i=0; i<linhas; i++){ for(int j=0; j<colunas; j++){ matriz[i][j]=0; } } } int verificar(int matriz[linhas][colunas], int x, int y){ int aux = 0; for(int i=0; i<linhas; i++) for(int j=0; j<colunas; j++) if(matriz[i][j]==0){ //compara se há algum lugar == 0, que é um lugar livre aux=1; //insere 1 na variavel aux, e ja da um break para sair do laço break; } if(aux==0){ /* se aux ficar 0, é porque nao achou nenhum lugar livre no teste acima, então finaliza a função retornando 0 */ printf("\n\nInfelizmente as vagas se esgotaram :( !\n\n"); return 0; } if(aux == 1 && matriz[x][y]==1){ //se estiver espaço livre, mas o escolhido for ocupado, vamos procurar um livre while(matriz[x][y]==1){ //enquanto o lugar escolhido for ocupado, repita. printf("\nLugar Nao Disponivel, escolha outro: "); scanf("%d,%d", &x, &y); } } //caso nao estiver ocupado e tiver espaço ele nem passará pelos if's, virá aqui de cara //no caso de entrar no if de ocupado, ao sair do laço, tb sairá do if e virá aqui matriz[x][y]=1; printf("\nLugar [%d][%d] escolhido com sucesso!\n", x, y); return 1; } int main(){ int lugares [linhas][colunas], i, j, k; char op; iniciar(lugares); do{ printf("\nEscolha um lugar, fileira e coluna respectivamente: "); scanf("%d,%d", &i, &j); k=verificar(lugares, i, j); printf("\nDeseja continuar?[S/N]: "); scanf(" %c", &op); }while(toupper(op)!='N' && k!=0); return 0; }
  2. @vangodp valeu man pela ajuda, @AnsiC valeu pela dica. Consegui resolver o meu problema aqui, vcs são top Tmj!
  3. Boa noite, tenho uma dúvida, esse código que fiz aqui é para tentar mostrar a minha dificuldade, preciso chamar um struct dentro de outro struct, porém usando ponteiro, até ai tudo bem, porém ao usar arquivo, travei alguém da um help de como salvar isso corretamente, e alguma ideia de um código que consiga ler sem erros esse arquivo? #include <stdio.h> #include <stdlib.h> typedef struct{ char nome[50]; double valor; }Produto; typedef struct{ Produto *x; int quantidade; }Loja; int main(){ Loja p; FILE *f1; f1 = fopen("TESTE.bin", "ab"); printf("\nQuantidade de produtos: "); scanf("%d", &p.quantidade); p.x = calloc(p.quantidade, sizeof(Produto)); for(int i=0; i<p.quantidade; i++){ printf("\nNome: "); scanf("%s", p.x[i].nome); printf("\nPreco: "); scanf("%lf", &p.x[i].valor); } fwrite(&p, sizeof(Loja), 1, f1); free(p.x); fclose(f1); return 0; }
  4. @LeoPereira38 bom fiz o que deu aqui, aparenta não ocorrer problemas no código, ja não sei a logica (lembrando que segui o seu código), e tb percebi alguns erros por falta de interpretação, um deles por exemplo é que a questão não pediu para o usuário informar quantos inscritos serão, e sim n inscritos, q será parado ao digitar 0 na idade, enfim, faça o que o AnsiC disse, estude bastante, desejo boa sorte pra ti! #include <stdio.h> int main(){ int inscritos, chamada, idade, masc=0, fem=0, qtde_m21exp=0, menor_idademulher=150, x=1; float idade_media=0, cont_idade_media=0, qtde_h45=0, porcentagem_45anos=0; char sexo, experiencia; printf("\nQuantos Inscritos para a vaga?: "); scanf("%d", &inscritos); while(x <= inscritos){ printf("\n\nCandidato %d\n\n", x); printf("\nNumero de Inscricao: "); scanf("%d", &chamada); printf("\nIdade: "); scanf("%d", &idade); fflush(stdin); printf("\nSexo?[M/F]: "); scanf(" %c", &sexo); if(sexo == 'M' || sexo == 'm') masc++; else if(sexo == 'F' || sexo == 'f') fem++; printf("\nTem Experiencia Anterior?[S/N]: "); scanf(" %c", &experiencia); if(experiencia == 'S' || experiencia == 's'){ idade_media+=idade; if(sexo == 'F' || sexo == 'f'){ if(menor_idademulher >= idade) menor_idademulher = idade; qtde_m21exp++; }else qtde_h45++; }else if(experiencia == 'N' || experiencia == 'n'){ if((idade>45) && (sexo=='M' || sexo == 'm')) qtde_h45++; } x++; } if(cont_idade_media != 0) idade_media/=cont_idade_media; printf("\n\n\nTotal de candidatos: %d Homens %d Mulheres\n", masc, fem); printf("\nA idade media dos candidatos com experiencia: %.2f\n", idade_media); printf("\nO percentual de homens com 45+ anos foi: "); porcentagem_45anos = (qtde_h45++/(float)masc) * 100; (masc!=0) ? printf("%.2f%%\n", porcentagem_45anos) : printf("0%\n"); printf("\nMulheres com idade menor que 21 anos e possui experiencia: %d\n\n", qtde_m21exp); if(menor_idademulher == 150) printf("Nao houve entre as mulhere nenhuma que ja tenha experiencia.\n"); else printf("\nEntre as mulheres com experiencia, a mais nova foi: %d anos\n", menor_idademulher); return 0; }
  5. No meu ponto de vista, o operador ternario é como se fosse um if e else, if representado por ? e else por : seguindo o exemplo do @AnsiC do printf com a mesma logica printf("%s", (media>6) ? "Aprovado" : "Reprovado"); vejo muito a utilização do operador ternário para colocar valores nas variáveis int x = (25 < 50) ? 1 : 0; nesse exemplo a variavel x receberá 1, pois 25 é menor que 50. Quando a comparação é muito complexa, recomendo usar outro método, mas alguns simples, o ternário ajuda muito, enfim, fiz esse comentário só para tentar ajudar, boa sorte pra você @Luis Gonzales!
  6. #include <stdio.h> int main(){ int num, numero, maior, cont=0; printf("\nQuantidade de numeros: "); scanf("%d", &num); printf("\nNumero: "); scanf("%d", &numero); maior = numero; /*inicilização da variavel maior corretamente*/ for(int i=1; i<num; i++){ /*for indo de 1 até a quantiade proposta pelo usuario, e começa pelo 1 porque houve uma leitura antes*/ printf("\nNumero: "); scanf("%d", &numero); if(numero > maior){ maior = numero; cont++; /*cada vez que achar um maior, o cont será adicionado +1 */ } } printf("\nO Maior Numero: %d\n", maior); /*Aqui fica o maior numero*/ printf("\nVezes achadas um maior numero : %d\n", cont); /*Aqui conta quantas vezes entrou-se no if*/ return 0; } Boa tarde @Derlan Santos, seguindo o seu código consegui fazer isso ai, pode não ser isso mas pode ajudar em algo ^^, para um melhor funcionamento, seria ideal utilização de vetores, facilitaria muito, pois o seu ultimo for não adianta por não se tratar de vetor, num só irá ter um valor, então fica comparando a mesma coisa n vezes... alem do if não conter nenhuma ação caso entre nele, enfim, estude vetores, porque é algo que se utiliza bastante e irá te ajudar, abraço!
  7. Bom, ainda sou iniciante em c, mas olhando o problema que você descreveu, esse fputs ai que é o causador do problema, pois você salva a senha ai, e dps no final salva a senha criptografada, ai deve ser por isso que ta salvando td junto, experimente tirar esse fputs logo dps de ler a senha, e uma dica que dou, quando você vai ler um vetor de char, uma string, não há necessidade de por & ok? um simples scanf("%s", senha); ja basta.
  8. Teria como postar o código, assim facilitaria a identificação do problema!

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!