Ir ao conteúdo

Igor Vargas

Membro Pleno
  • Posts

    173
  • Cadastrado em

  • Última visita

Tudo que Igor Vargas postou

  1. @giu_d Verificar só se tem o ponto mas tem a parte do "com ou br " depois.
  2. Deu certo a questão do nome ahah valeu. Agora sobre o email char email[] = "[email protected]"; int i; for (i = 0; i < strlen(email); i++) { if (email[i + 2] == '@' && email[i + 1] != ' ' && email[i] != ' ') { printf("Validado!"); } } Falta o .com ou .br estou pensando em fazer um vetor e colocar os nomes tipo @hotmail ou gmail dentro e depois comparar ele com o email inscrito. @giu_d
  3. O problema pra mim é que não posso usar *result = strstr porque não aprendi isso em aula e o professor é meio rigido nesse quesito de usar só o que é aprendido em aula. Estou tentando outras formas mas nenhuma deu certo ainda
  4. O problema é que o mesmo scanf que eu uso pra digitar o nome normal seria o mesmo que eu teria que pegar as 3 primeiras letras do nome e compara com o nome que esta guardado no struct para printar uma grade de horário. Quanto ao email se eu fizesse uma condição assim funcionaria? @giu_d if(strcmp(email[x],".com")==1 ||strcmp(email[x],".br")==1 || strcmp(email[x],"hotmail")==1 || strcmp(email[x],"yahoo")==1|| strcmp(email[x],"gmail")==1 || email[x] <2){ printf("Email invalido"); }
  5. Eu tentei fazer o que você falou. O nome não funcionou aqui. printf("Digite o nome do aluno:"); char string[3]; fflush(stdin); gets(nome); for(x=0; x<4; x++){ string[x]=nome; if(string[x] == al_C[x].nome && string[x+1] == al_C[x+1].nome && string[x+1] == al_C[x+1].nome){ salva_V=1; } O email fiz uma parte mas n entendi o resto. printf("Digite seu e-mail:"); fflush(stdin); gets(al[cont].email); for(x=0; x<strlen(al[cont].email); x++){ if(al[x].email=='@'){ passa++; }if(al[passa-2].email!=' '){ } } Faz poucos meses que estou programando tem muita coisa que não assimilei direito. @giu_d
  6. Estou terminando um trabalho e falta algumas coisas. Queria saber a opinião de vocês nessas questões. 1. Preciso validar um email ele tem que ter um @ nao pode ter menos de 2 letras no inicio e dever ter um ponto final. 2. Também preciso achar um aluno pelas 3 primeiras letras do nome dele. No código abaixo ele esta comparando o nome inteiro. printf("Digite o nome do aluno:"); fflush(stdin); gets(nome); for(x=0; x<4; x++){ if(strcmp(al_C[x].nome, nome)==0){ salva_V=1; } } }
  7. Entendi não estava percebendo isso, Obrigado pela ajuda de todos.
  8. @giu_d Se ela digitar 127 e 135 ela não vai poder se inscrever pois as disciplinas tem os mesmos horários, ai retorna pra ela fazer a inscrição das disciplinas novamente.
  9. printf("Digite em quantas materias deseja se matricular:"); scanf("%d",&num); printf("Digite o codigo das diciplinas que voce deseja se matricular\n"); do{ for(y=0; y<num; y++){ scanf("%d",&al[y].l_Disciplinas); volta=1; Digamos q ele digite o numero dois no primeiro scanf. Ai no segundo scanf vai digitar 127 e 132 ou135 e143 se for isso q ele digitar, vai ser verdadeiro, pois só vai ser falso se não for umas das 2 opções pelo menos foi essa lógica q eu utilizei posso estar errado. @isrnick adicionado 8 minutos depois A minha struct é essa. Sera que o int l_Dsciplinas não deveria ser um vetor ? pois são 5 disciplinas, mas no caso o aluno escolhe em quantas deseja se matricular. Sendo assim acho que o if funcionária. struct registro { int matricula; char nome[20]; char sobrenome[20]; char email[40]; int l_Disciplinas; };
  10. Mesmo colocando if ele não funcionou. Não quero passar todo o código porque é meio extenso.
  11. @devair1010 nossa não tinha visto isso. Mas o meu outro do while parece q não esta reconhecendo essa condição else if((al[x].l_Disciplinas == 127 && al[x].l_Disciplinas == 132 )|| al[x].l_Disciplinas ==135 && al[x].l_Disciplinas == 143) { printf("voce Não pode se inscrever em duas disciplas de mesmo horario\n"); volta=0; al[y].l_Disciplinas=0; } }
  12. Estou com uma duvida na minha função onde meu laço nao esta reconhecendo meu if e não esta fazendo a volta para o scanf("%d",&al[x]l._Disciplinas) . Colocarei só a função. Meus dois do while não estão funcionando. void add_Aluno(struct registro al[3], struct disciplinas add_Dis[5], struct grade g_Materias[20][5]){ int dis,x,y,guarda[5],cont=0,num; char resp; int volta; printf("\n\n"); printf("--------------------------------------\n"); printf("---voce selecionou adicionar aluno.---\n"); printf("--------------------------------------\n"); printf(" Lista de Disciplinas\n"); printf(" Codigo Nome\n\n"); for(x=0; x<5; x++){ printf(" %d %s \n",add_Dis[x].codigo,add_Dis[x].nome); } printf("\n"); do{ printf("Digite seu nome:"); fflush(stdin); //Funcão de Cadastro do aluno gets(al[cont].nome); printf("Digite seu Sobrenome:"); gets(al[cont].sobrenome); strcat(al[cont].nome, al[cont].sobrenome); printf("Digite sua Matricula:"); scanf("%d",&al[cont].matricula); printf("Digite seu e-mail:"); fflush(stdin); gets(al[cont].email); cont++; volta=1; printf("Digite em quantas materias deseja se matricular:"); scanf("%d",&num); printf("Digite o codigo das diciplinas que voce deseja se matricular\n"); do{ for(y=0; y<num; y++){ scanf("%d",&al[y].l_Disciplinas); volta=1; } for(x=0; x<num; x++){ if(al[x].l_Disciplinas==122) //Adiciona as disciplinas para as posiçoes //da matriz { strcpy(g_Materias[0][0].grade_C,"Algo"); strcpy(g_Materias[1][1].grade_C,"Algo"); } else if(al[x].l_Disciplinas==127) { strcpy(g_Materias[2][1].grade_C,"Estr"); strcpy(g_Materias[4][2].grade_C,"Estr"); } else if(al[x].l_Disciplinas==132) { strcpy(g_Materias[2][1].grade_C,"Sist"); strcpy(g_Materias[1][3].grade_C,"Sist"); } else if(al[x].l_Disciplinas==143) { strcpy(g_Materias[1][4].grade_C,"Padr"); } else if(al[x].l_Disciplinas==135) { strcpy(g_Materias[1][2].grade_C,"Banc"); strcpy(g_Materias[1][4].grade_C,"Banc"); } else if((al[x].l_Disciplinas == 127 && al[x].l_Disciplinas == 132 )|| al[x].l_Disciplinas ==135 && al[x].l_Disciplinas == 143) { printf("voce Não pode se inscrever em duas disciplas de mesmo horario\n"); volta=0; al[y].l_Disciplinas=0; } } }while(volta == 0 ); printf("Deseja Cadastrar outro aluno? s/n:"); fflush(stdin); scanf("%c",&resp); }while(resp =! 'n'); }
  13. @devair1010 estou com uma dúvida no meu trabalho onde preciso passar as máterias que o aluno escolheu para a grade, o problema é que a minha grade esta dentro do meu registro alunos, o que eu estou pensando em fazer é colocar outro registro só com a grade e depois adicionar as matérias. Eu não sei se tem uma maneira mais prática de fazer isso. #include <stdio.h> #include <string.h> struct disciplinas { int codigo; char nome[20]; char professor[20]; int c_Horaria; char h_Semanal[30]; }; struct registro { int matricula; char nome[20]; char sobrenome[20]; char email[40]; int l_Disciplinas[5]; char grade[4][5]; }; struct grade { char grade[4][5]; }; int cont; void add_Aluno(struct registro al[3], struct disciplinas add_Dis[5], struct grade g_Materias[4][5]){ int dis,x,y,guarda[5],cont=0,num; char resp; printf("\n\n"); printf("--------------------------------------\n"); printf("---voce selecionou adicionar aluno.---\n"); printf("--------------------------------------\n"); printf(" Lista de Disciplinas\n"); printf(" Codigo Nome\n\n"); for(x=0; x<5; x++){ printf(" %d %s \n",add_Dis[x].codigo,add_Dis[x].nome); } printf("\n"); printf(" Horas Horario\n\n"); for(x=0; x<5; x++){ printf(" %d %s\n",add_Dis[x].c_Horaria,add_Dis[x].h_Semanal); } printf("\n"); do{ x=0; printf("Digite seu nome:"); fflush(stdin); gets(al[cont].nome); printf("Digite seu Sobrenome:"); gets(al[cont].sobrenome); strcat(al[cont].nome,al[cont].sobrenome); printf("Digite sua Matricula:"); scanf("%d",&al[cont].matricula); printf("Digite seu e-mail:"); fflush(stdin); gets(al[cont].email); printf("Digite em quantas materias deseja se matricular:"); scanf("%d",&num); printf("Digite o codigo das diciplinas que voce deseja se matricular\n"); cont++; for(y=0; y<num; y++){ scanf("%d",&al[y].l_Disciplinas); } for(x=0; x<num; x++){ if(al[x].l_Disciplinas==122) { strcpy(g_Materias[0][0].grade,"Algo"); strcpy(g_Materias[1][1].grade,"Algo"); } else if(al[x].l_Disciplinas==127) { strcpy(g_Materias[2][1].grade,"Estr"); strcpy(g_Materias[4][2].grade,"Estr"); } else if(al[x].l_Disciplinas==132) { strcpy(g_Materias[2][1].grade,"Sist"); strcpy(g_Materias[1][3].grade,"Sist"); } else if(al[x].l_Disciplinas==143) { strcpy(g_Materias[1][4].grade,"Padr"); } else if(al[x].l_Disciplinas==143) { strcpy(g_Materias[1][2].grade,"Banc"); strcpy(g_Materias[1][4].grade,"Banc"); } } printf("Deseja Cadastrar outro aluno? s/n:"); fflush(stdin); scanf("%c",&resp); }while(x=!'n'); } main(){ struct disciplinas curso[5]; struct registro alunos[3]; struct grade m_Salva[4][5]; int escolha; curso[0].codigo=122; strcpy(curso[0].nome,"Algoritimos"); curso[0].c_Horaria=60; strcpy(curso[0].h_Semanal,"Segunda bloco 1 e terca bloco 2"); curso[1].codigo=127; strcpy(curso[1].nome,"Estrutura de dados"); curso[1].c_Horaria=60; strcpy(curso[1].h_Semanal,"terca bloco 3 e quarta bloco 4"); curso[2].codigo=132; //dados salvos strcpy(curso[2].nome,"Sistemas Operacionais A "); curso[2].c_Horaria=60; strcpy(curso[2].h_Semanal,"Terca bloco 3 e Quinta bloco 2"); curso[3].codigo=143; strcpy(curso[3].nome,"Padroes de Projeto"); curso[3].c_Horaria=30; strcpy(curso[3].h_Semanal,"Sexta bloco 2"); curso[4].codigo=135; strcpy(curso[4].nome,"Banco de dados ll"); curso[4].c_Horaria=60; strcpy(curso[4].h_Semanal,"Quarta bloco 3 e sexta bloco 2"); do{ printf(" -----------------------\n"); printf(" ------Bem Vindo!!------\n"); printf(" -----------------------\n"); printf("Escolha uma das opções abaixo\n"); printf("1. Adicionar aluno\n"); printf("2. Consultar aluno\n"); printf("3. Sair\n"); scanf("%d",&escolha); if(escolha == 1){ add_Aluno(alunos,curso,m_Salva); } else if(escolha == 2) { } }while(escolha !=3); }
  14. valeu pela ajuda infelizmente tive que ficar com o código de baixo, pois terei que explicar pro professor o que eu fiz ahah não estou muito avançado em C ainda, mas muito obrigado pela ajuda. Tem mais coisa pra fazer no trabalho quando eu tiver dúvida vou postar aqui @devair1010.
  15. Consegui arrumar. Agora a dúvida é se o que eu fiz até agora esta certo ou esta faltando algo. #include <stdio.h> #include <string.h> struct disciplinas { int codigo; char nome[20]; char professor[20]; int c_Horaria; char h_Semanal[30]; }; struct registro { int matricula; char nome[20]; char sobrenome[20]; char email[40]; int l_Disciplinas[5]; }; int cont; void add_Aluno(struct registro al[3], struct disciplinas add_Dis[5]){ int dis,x,y,guarda[5],cont=0,num; char resp; printf("\n\n"); printf("--------------------------------------\n"); printf("---voce selecionou adicionar aluno.---\n"); printf("--------------------------------------\n"); do{ x=0; printf("Digite seu nome:"); fflush(stdin); gets(al[cont].nome); printf("Digite seu Sobrenome:"); gets(al[cont].sobrenome); strcat(al[cont].nome,al[cont].sobrenome); printf("Digite sua Matricula:"); scanf("%d",&al[cont].matricula); printf("Digite seu e-mail:"); fflush(stdin); gets(al[cont].email); printf("Digite em quantas materias deseja se matricular:"); scanf("%d",&num); printf("Digite o codigo das diciplinas que voce deseja se matricular\n"); for(y=0; y<num; y++){ scanf("%d",&al[y].l_Disciplinas); } printf("Deseja Cadastrar outro aluno? s/n:"); fflush(stdin); scanf("%c",&resp); }while(x=!'n'); } main(){ struct disciplinas curso[5]; struct registro alunos[3]; int escolha; char grade[4][5]; curso[0].codigo=122; strcpy(curso[0].nome,"Algoritimos"); curso[0].c_Horaria=60; strcpy(curso[0].h_Semanal,"Segunda bloco 1 e terca bloco 2"); curso[1].codigo=127; strcpy(curso[1].nome,"Estrutura de dados"); curso[1].c_Horaria=60; strcpy(curso[1].h_Semanal,"terca bloco 3 e quarta bloco 4"); curso[2].codigo=132; //dados salvos strcpy(curso[2].nome,"Sistemas Operacionais A "); curso[2].c_Horaria=60; strcpy(curso[2].h_Semanal,"Terca bloco 3 e Quinta bloco 2"); curso[3].codigo=143; strcpy(curso[3].nome,"Padroes de Projeto"); curso[3].c_Horaria=30; strcpy(curso[3].h_Semanal,"Sexta bloco 2"); curso[4].codigo=135; strcpy(curso[4].nome,"Banco de dados ll"); curso[4].c_Horaria=60; strcpy(curso[4].h_Semanal,"Quarta bloco 3 e sexta bloco 2"); do{ printf(" -----------------------\n"); printf(" ------Bem Vindo!!------\n"); printf(" -----------------------\n"); printf("Escolha uma das opções abaixo\n"); printf("1. Adicionar aluno\n"); printf("2. Consultar aluno\n"); printf("3. Sair\n"); scanf("%d",&escolha); if(escolha == 1){ add_Aluno(alunos,curso); }else if(escolha == 2){ } }while(escolha !=3); }
  16. Galera estou com uma duvida nesse Trabalho. Eu preciso mostra umas lista parecida com esta. o problema é que ele n esta pegando os dados salvos na main. o meu codigo esta mais ou menos assim. #include <stdio.h> #include <string.h> struct diciplinas { int codigo; char nome[20]; char professor[20]; int c_Horaria; char h_Semanal[50]; }; struct registro { int matricula; char nome[20]; char sobrenome[20]; char email[20]; int l_Diciplinas[20]; char grade[5][5]; }; void add_Aluno(struct registro al[3], struct diciplinas add_Dis[5]){ char sair; int dis,x,y=0,guarda[5]; printf("\n\n"); printf("--------------------------------------\n"); printf("---voce selecionou adicionar aluno.---\n"); printf("--------------------------------------\n"); printf("Lista de diciplinas\n"); for(x=0; x<5; x++){ //mostra a lista das materias printf("%d\n",add_Dis[x].codigo); } for(x=0; x<3; x++){ printf("Digite seu nome:"); gets(al[x].nome); printf("Digite seu Sobrenome:"); gets(al[x].sobrenome); strcat(al[x].nome,al[x].sobrenome); printf("Digite sua Matricula:"); scanf("%d",&al[x].matricula); printf("Digite seu e-mail:"); gets(al[x].email); printf("Quantas diciplinas voce deseja se matricular:"); scanf("%d",&dis); printf("Digite o codigo das diciplinas que voce deseja se matricular:"); while(y<dis){ scanf("%d",&dis); guarda[y]=dis; y++; } } } main(){ struct diciplinas curso[5]; struct registro alunos[3]; int escolha; curso[0].codigo=0122; strcpy(curso[0].nome,"Algoritimos"); curso[0].c_Horaria=60; strcpy(curso[0].h_Semanal,"Segunda bloco 1 e terca bloco 2"); curso[1].codigo=0127; strcpy(curso[1].nome,"Estrutura de dados"); curso[1].c_Horaria=60; strcpy(curso[1].h_Semanal,"terca bloco 3 e quarta bloco 4"); curso[2].codigo=0132; //dados salvos strcpy(curso[2].nome,"Sistemas Operacionais A "); curso[2].c_Horaria=60; strcpy(curso[2].h_Semanal,"Terca bloco 3 e Quinta bloco 2"); curso[3].codigo=0143; strcpy(curso[3].nome,"Padroes de Projeto"); curso[3].c_Horaria=30; strcpy(curso[3].h_Semanal,"Sexta bloco 2"); curso[4].codigo=0135; strcpy(curso[4].nome,"Banco de dados ll"); curso[4].c_Horaria=60; strcpy(curso[4].h_Semanal,"Quarta bloco 3 e sexta bloco 2"); printf(" -----------------------\n"); printf(" ------Bem Vindo!!------\n"); printf(" -----------------------\n"); printf("Escolha uma das opções abaixo\n"); printf("1. Adicionar aluno\n"); printf("2. Consultar aluno\n"); scanf("%d",&escolha); if(escolha == 1){ add_Aluno(alunos,curso); }else if(escolha == 2){ } }
  17. Eai galera. Estou com um problema nesse condigo, onde quando eu escolho a segunda opção ele da um erro depois que voce digita a placa do seu carro. Estou achando que a comparação de strings não esta funcionando, mas n acho o motivo de não estar. #include <stdio.h> #include <string.h> struct FastCar { int ano_F; float preco; char descricao[50],fabricante[20],cor[20],placa[6]; }; void cadastro(struct FastCar op_Um[1] ){ int x; printf("-------------------------------------------\n"); printf("-----voce Selecionou Cadastrar Automovel---\n"); printf("-------------------------------------------\n"); for(x=0; x<1; x++){ fflush(stdin); printf("Digite a Placa do Seu carro: "); gets(op_Um[x].placa); strupr(op_Um[x].placa); printf("Digite a Descricao do seu carro: "); gets(op_Um[x].descricao); printf("Digite o Fabricante do seu carro : "); gets(op_Um[x].fabricante); printf("Digite a Cor do seu Carro: "); gets(op_Um[x].cor); printf("Digite o Ano de fabricação do seu carro: "); scanf("%d",&op_Um[x].ano_F); printf("Digite o Preco do seu carro:"); scanf("%f",&op_Um[x].preco); } } int consulta(struct FastCar op_Dois[1]){ int x,valor; char nova_P[6]; printf("-------------------------------------------\n"); printf("-----voce Selecionou Consultar Automovel---\n"); printf("-------------------------------------------\n"); fflush(stdin); printf("Digite a placa do carro: "); gets(nova_P); for(x=0; x<1; x++){ int salva=strcmp(op_Dois[x].placa, nova_P[x]); if(salva==0){ fflush(stdin); puts(op_Dois[x].descricao); puts(op_Dois[x].fabricante); puts(op_Dois[x].cor); printf("%d\n",op_Dois[x].ano_F); printf("%f",op_Dois[x].preco); } else{ return valor=1; } } if(valor==1){ printf("Essa Placa nao existe ou foi digitada incorreta"); } } void relatorio(struct FastCar op_Tres[1]){ int x; printf("-------------------------------------------\n"); printf("-----voce Selecionou Gerar Relatorio---\n"); printf("-------------------------------------------\n"); printf("Todos Os Carros"); for(x=0; x<1; x++){ puts(op_Tres[x].placa); puts(op_Tres[x].descricao); puts(op_Tres[x].fabricante); puts(op_Tres[x].cor); printf("%d\n",op_Tres[x].ano_F); printf("%f",op_Tres[x].preco); } } main(){ struct FastCar Carros[1]; int escolha; do{ printf("1. Cadastrar automovel\n"); printf("2. Consultar automovel\n"); printf("3. Gerar Relatorio\n"); printf("4. Sair do Programa\n"); scanf("%d",&escolha); if(escolha == 1){ cadastro(Carros); }else if(escolha == 2){ consulta(Carros); }else if(escolha == 3){ relatorio(Carros); }else if(escolha == 4){ break; } }while(escolha!= 4); }
  18. Obrigado pela ajuda n tinha pensado desse jeito. @devair1010
  19. Galera estou com uma duvida nesse exercicio, basicamente é pra pegar a 3 palavras separadas de uma frase. Minha duvida é porque meu codigo esta dando erro. #include <stdio.h> #include <string.h> main(){ char frase[20]={"Ola tudo bem"}; int x; char primeira[10],segunda[10],terceira[10]; for(x=0; x<strlen(frase); x++){ if(frase[x]==" "){ strcpy(frase,primeira); primeira[x]=frase[x]; } }for(x=" "+1; x<strlen(frase); x++){ if(frase[x]==" "){ segunda[x]=frase[x]; } }for(x=strlen(frase); x>0; x--){ if(frase[x]==" "){ strcpy(frase,terceira); } }for(x=0; x<strlen(terceira); x++){ char passa[10]; passa[x]=terceira[x]; terceira[x]=passa[x]; } puts(primeira); puts(segunda); puts(terceira); }
  20. @devair1010 Então eu teria quer fazer separado para cada delegação ele só verificar qual a maior e guardar isso?. Porque no caso as alturas estão todas em um vetor ou seja juntas. Eu teria que criar vetores para cada uma ou matriz.
  21. Criar um programa que possa armazenar as alturas de dez atletas de 5 delegações que participarão das olimpíadas e imprima a maior altura de cada delegação. Minha duvida é. Como eu guardo as 5 alturas. Pois o meu programa esta guardando a mesma altura. main(){ float del[5]; float altura[25]={1.70,1.75,1.80,1.90,1.85, 1.70,1.75,1.80,1.70,1.82, 1.70,1.45,1.80,1.91,1.83, 1.70,1.15,1.80,1.92,1.84, 1.70,1.75,1.75,1.94,1.92}; int x,y; float maior[5]; for(y=0; y<5; y++){ for(x=0; x<25; x++){ maior[y]=altura[x]; if(altura[x]>maior[x]){ del[y]=altura[x]; } } } for(x=0; x<5; x++){ printf("[%f]\n",del[x]); } }
  22. @Simon Viegas a lógica que eu faria. Pegaria o numero maior dps pegaria o menor consecutivo, salvaria o menor em uma variável e o maior também, depois faria um for com a variável menor e a condição se o menor for menor que o maior ele incrementava, tb faria um contador pra ver o tamanho do intervalo
  23. @Boko Moko a minha duvida é que eu n sei como pegar as variáveis consecutivas que tem o maior intervalo. Nunca fiz nada parecido desse tipo.
  24. @Boko Moko se o numero for negativo ele transforma em positivo

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!