Ir ao conteúdo
  • Cadastre-se

Talyson Maia

Membro Pleno
  • Total de itens

    30
  • Cadastrado em

  • Última visita

  • Qualificações

    0%

Reputação

19

Informações gerais

  • Cidade e Estado
    Fortaleza/CE
  • Sexo
    Masculino
  1. @arfneto nesse printf teste, caso eu não queira testar, mas sim chamar os numeros para digitar, eu coloco um scanf ao invés desses números?
  2. @arfneto Eu achei essa questão em um site inglês chamado Euler, por isso tava muito confuso. Eu consegui resolver, realmente eu estava errando a forma de introdução da função e também no vetor.
  3. Olá, boa tarde. Eu estou tentando fazer uma função c que obrigatoriamente tenha o seguinte protótipo: int somaMultip(int t[ ], int size, int limite) A função somaMultip vai encontrar a soma de todos os números entre 1 e limite-1 que são múltiplos de algum número do vetor t de tamanho size. Se listarmos todos os números naturais abaixo de 20 que são múltiplos de 3 ou 5, obteremos 3, 5, 6, 9, 10, 12, 15 e 18. A soma desses múltiplos é 78. Na entrada: Uma quantidade n, seguida de n números inteiros. Um número limite. Na saída a soma de todos os números entre 1 e limite-1 que são múltiplos de algum dos números entrados anteriormente. Aqui é até onde fui até agora: #include <stdio.h> int somaMulti(int t[], int size, int limite) { int soma = 0; scanf("%d", &size); for(int i = 0; i < size; ++i){ scanf("%d", t[i]); scanf("%d", &limite); for(int j = 1 ; j <= limite-1 ; j++) { if(v[size]%limite == 0 || v[size+1]%limite == 0) { soma += j; } } } printf("%i\n", soma); return soma; } int main () { int size = 0; int soma_multiplos(int t[], int size, int limite); return 0; }
  4. @arfneto Eu não consegui entender.... Eu tentei assim, mas não foi:
  5. Olá, eu fiz um sistema de cadastro para o time de futebol da minha faculdade. No entanto, eu não estou conseguindo salvar os dados cadastrados em texto no meu computador. Alguém poderia me instruir a salvar arquivos e também ler esses arquivos? #include <stdio.h> #include <stdlib.h> //possui funções envolvendo alocação de memória, controle de processos, conversões e outras #include <string.h> //Esta biblioteca contém funções que manipulam strings. typedef struct { char nome[30]; //vetor de caractere com 30 posições int matricula; int idade; float peso; float altura; char posicao[100]; //vetor de caractere com 100 posições //int operacao; } play; //nome da estrutura. Essa estrutura guarda as minhas informações sobre o aluno que deseja se inscrever. typedef struct { char coment[100]; int size; char nome[30]; int rg; int number; char ender[100]; char plano[30]; } clube; clube socio_clube() { clube b; int op = 0; printf("\nOla, bem vindo ao cadastro para se tornar socio de um clube.\n"); printf("\nPLANOS DISPONIVEIS: \n"); printf("Ouro -- 20 reais/mes\n"); printf("Prata -- 15 reais/mes\n"); printf("Bronze -- 10 reais/mes\n"); //sleep(1); printf("\nBem vindo ao cadastro de socios. Coloque seus dados e em breve entraremos em contato para falarmos sobre o pagamento\n"); printf("Digite o seu nome: \n"); scanf(" %[^\n]s", b.nome); printf("Digite o seu RG: \n"); scanf("%d", & b.rg); printf("Digite o seu numero para contato: \n"); scanf("%d", & b.number); printf("Digite o seu endereco: \n"); scanf(" %[^\n]s", b.ender); printf("Digite o nome do plano que voce deseja: \n"); scanf(" %[^\n]s", b.plano); //sleep(1); system("cls"); printf("Obrigado. voce retornara ao menu principal"); //sleep(1); system("cls"); } clube * insere_clube(clube * t, int * m, clube nv) { //t muda v -- m muda n t = (clube * ) realloc(t, ( * m + 1) * sizeof(clube)); ///altere o tamanho do vetor v para conter *n+1 elementos, pondo endereço em v. (A funcao modifica o tamanho da memoria previamente alocada apontada por *ptr para aquele especificado por num. O valor de num pode ser maior ou menor que o original) if (t == 0) { printf("Ops! não estamos conseguindo inserir o aluno"); } //colocamos o jogador novo na última posição do vetor (posicao *n) t[ * m] = nv; ( * m) ++; return t; } clube * remove_associado(clube * t, int * m, int rg) { //rg no lugar de matricula for (int j = 0; j < * m; j++) { if (t[j].rg == rg) { // 1 2 3 4 | 1 3 3 4 | 1 3 4 4 | 1 3 4 ////se a matrícula do i-ésimo elemento do vetor é igual à 'matrícula' passada como parâmetro //for(int j = i; j < *m - 1; j++) { t[j] = t[( * m) - 1]; ////copiando último elemento do vetor para a posição i } //estamos realocando o vetor para conter um elemento a menos, pondo endereço em v t = (clube * ) realloc(t, ( * m - 1) * sizeof(clube)); //quando não for possivel realocar vai aparecer essa msg: if (t == 0 && ( * m) != 1) { //antigamente não dava certo porque removia o ultimo elemento e ficava com v = 0, aí ele entrava na condição printf("Ops! não foi possivel remover o associado"); return 0; } ( * m) --; break; } printf("Removemos o associado. Agora voce retornara ao menu principal.\n"); //sleep(3); system("cls"); //retornando o endereço de memória do vetor realocado return t; } void achar_socio(clube * t, int * m, int acharrg, int senha) { if (senha == 785) { printf("Ola colaborador, qual associado voce deseja ver? \n"); scanf("%d", & acharrg); for (int j = 0; j < * m; j++) { if (t[j].rg == acharrg) { printf("\n%s\n%d\n%d\n%s\n%s\n", t[j].nome, t[j].rg, t[j].number, t[j].ender, t[j].plano); } } } else { printf("senha incorreta\n"); } do { printf("Deseja retornar ao menu principal? Sim (1)\n"); scanf("%d", & senha); if (senha == 1) { printf("Obrigado por conferir"); //sleep(1); system("cls"); } } while (senha != 1); } void lista_socio(clube * t, int * m, int senha) { printf("\nSegue a lista de todos associados: \n"); for (int j = 0; j < * m; j++) { printf("\n%s\n%d\n%d\n%s\n%s\n", t[j].nome, t[j].rg, t[j].number, t[j].ender, t[j].plano); } do { printf("Deseja retornar ao menu principal? Sim (1)\n"); scanf("%d", & senha); if (senha == 1) { printf("Obrigado por conferir"); //sleep(1); system("cls"); } } while (senha != 1); } play cadastra_play() { play a; //declarei uma variavel ''a'' do tipo(estrutura) play printf("Digite o seu nome: \n"); scanf(" %[^\n]s", a.nome); printf("Digite sua matricula: \n"); scanf("%d", & a.matricula); printf("Digite sua idade: \n"); scanf("%d", & a.idade); printf("Digite seu peso: \n"); scanf("%f", & a.peso); printf("Digite sua altura: \n"); scanf("%f", & a.altura); printf("Digite a posicao que voce pretende jogar: \n"); scanf(" %[^\n]s", a.posicao); system("cls"); //win ; ''clear'' linux printf("\n"); printf("Obrigado pelo cadastro. Agora voce retornara ao menu principal.\n"); //sleep(3); system("cls"); return a; } play * insere_play(play * v, int * n, play novo) { //ponteiro que aponta para estrutura do tipo play, outro para um tipo inteiro e uma variavel novo; v = (play * ) realloc(v, ( * n + 1) * sizeof(play)); ///altere o tamanho do vetor v para conter *n+1 elementos, pondo endereço em v. (A funcao modifica o tamanho da memoria previamente alocada apontada por *ptr para aquele especificado por num. O valor de num pode ser maior ou menor que o original) if (v == 0) { printf("Ops! não estamos conseguindo inserir o aluno"); } //colocamos o jogador novo na última posição do vetor (posicao *n) v[ * n] = novo; ( * n) ++; return v; } play * remove_play(play * v, int * n, int matricula) { for (int i = 0; i < * n; i++) { if (v[i].matricula == matricula) { // 1 2 3 4 | 1 3 3 4 | 1 3 4 4 | 1 3 4 ////se a matrícula do i-ésimo elemento do vetor é igual à 'matrícula' passada como parâmetro //for(int j = i; j < *n - 1; j++) { v[i] = v[( * n) - 1]; ////copiando último elemento do vetor para a posição i } //estamos realocando o vetor para conter um elemento a menos, pondo endereço em v v = (play * ) realloc(v, ( * n - 1) * sizeof(play)); //quando não for possivel realocar vai aparecer essa msg: if (v == 0 && ( * n) != 1) { //antigamente não dava certo porque removia o ultimo elemento e ficava com v = 0, aí ele entrava na condição printf("Ops! não foi possivel remover alunos"); return 0; } ( * n) --; break; } printf("Removemos o aluno. Agora voce retornara ao menu principal.\n"); //sleep(3); system("clear"); //retornando o endereço de memória do vetor realocado return v; } void achar_play(play * v, int * n, int acharmat, int senha) { if (senha == 785) { printf("Ola colaborador, qual inscricao voce deseja conferir? Digite a matricula do inscrito: \n"); scanf("%d", & acharmat); for (int i = 0; i < * n; i++) { if (v[i].matricula == acharmat) { printf("\n%s\n%d\n%d\n%.1f\n%.2f\n%s\n", v[i].nome, v[i].matricula, v[i].idade, v[i].peso, v[i].altura, v[i].posicao); } } } else { printf("senha incorreta\n"); } do { printf("Deseja retornar ao menu principal? Sim (1)\n"); scanf("%d", & senha); if (senha == 1) { printf("Obrigado por conferir"); //sleep(1); system("cls"); } } while (senha != 1); } void lista_play(play * v, int * n, int senha) { printf("\nSegue a lista de alunos cadastrados por ordem de cadastro: \n"); for (int i = 0; i < * n; i++) { printf("\n%s\n%d\n%d\n%.1f\n%.2f\n%s\n", v[i].nome, v[i].matricula, v[i].idade, v[i].peso, v[i].altura, v[i].posicao); } do { printf("Deseja retornar ao menu principal? Sim (1)\n"); scanf("%d", & senha); if (senha == 1) { printf("Obrigado por conferir"); //sleep(1); system("cls"); } } while (senha != 1); } int main() { int i, j, n = 0, m = 0, senha = 0; play * v = 0; clube * t = 0; int mat = 0, doc = 0; char oper = 0; //algumas dessas variaveis acima(como n, mat, oper) serão passadas por referências pra função do { printf("\t\t===SEJA BEM VINDO AO SISTEMA DO TORNEIO DE FUTEBOL DE QUIXADA===\n"); printf("===MENU ATLETAS=== ===MENU CLUBES===\n"); printf("Escolha:\nA... Cadastrar Aluno E... Se tornar socio do clube\n"); printf("B... Remove Aluno F... Remover socio\n"); printf("C... Listar alunos G... informações de um socio (restrito) \n"); printf("D... Achar aluno H... Listar o nome de todos os socios\n"); printf("E... Sair do menu S... sair do menu\n"); printf("\n"); printf(" \tESCOLHA A OPCAO DO MENU QUE voce DESEJA ENTRAR:\n"); scanf(" %c", & oper); system("cls"); switch (oper) { case 'A': case 'a': ; play novo = cadastra_play(); v = insere_play(v, & n, novo); break; case 'B': case 'b': printf("Digite a matricula do aluno que voce deseja remover: "); scanf("%d", & mat); v = remove_play(v, & n, mat); break; case 'C': case 'c': lista_play(v, & n, senha); break; case 'D': case 'd': printf("\nAcesso restrito. Digite a senha: \n"); scanf("%d", & senha); achar_play(v, & n, mat, senha); break; case 'E': case 'e': ; clube nv = socio_clube(); t = insere_clube(t, & m, nv); break; case 'F': case 'f': scanf("%d", & doc); printf("Escreva seu rg para cancelar o seu socio"); t = remove_associado(t, & m, doc); break; case 'G': case 'g': printf("\nAcesso restrito. Digite a senha: \n"); scanf("%d", & senha); achar_socio(t, & m, doc, senha); break; case 'H': case 'h': lista_socio(t, & m, senha); break; case 'S': system("exit"); break; default: printf("Opcao invalida. Tente novamente: \n"); break; } } while (oper != 'S'); free(v); //desaloca a porção de memória alocada return 0; }
  6. @codigo rápido Uhuu, eu consegui fazer com que aparecesse todos no listar Mas ficou algo meio feio, porquê tipo: quando eu listo os atletas o menu também aparece. Lá no cadastro e no remover o menu não aparece, somente na parte de listar alunos. Sabe o porquê? #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct { char nome[20]; int matricula; int idade; float peso; float altura; char posicao[100]; int operacao; } play; play cadastra_play() { play a; printf("Digite o seu nome: \n"); scanf(" %[^\n]s", a.nome); printf("Digite sua matricula: \n"); scanf("%d", &a.matricula); printf("Digite sua idade: \n"); scanf("%d", &a.idade); printf("Digite seu peso: \n"); scanf("%f", &a.peso); printf("Digite sua altura: \n"); scanf("%f", &a.altura); printf("Digite a posicao que voce pretende jogar: \n"); scanf(" %[^\n]s", a.posicao); system("cls"); printf("\n"); printf("Obrigado pelo cadastro. Agora voce retornara ao menu principal.\n"); sleep(3); system("cls"); return a; } play * insere_play(play *v, int *n, play novo) { v = (play*) realloc(v, (*n + 1) * sizeof(play)); if (v == 0) { printf("Ops! não estamos conseguindo inserir o aluno"); } v[*n] = novo; (*n)++; return v; } play *remove_play(play *v, int *n, int matricula) { for (int i = 0; i < *n; i++) { if (v[i].matricula == matricula) { // 1 2 3 4 | 1 3 3 4 | 1 3 4 4 | 1 3 4 for(int j = i; j < *n - 1; j++) { v[j] = v[j+1]; } v = (play*) realloc(v, (*n - 1) * sizeof(play)); if (v == 0) { printf("Ops! não foi possivel remover alunos"); return 0; } (*n)--; break; } } return v; } //______________________________________ void lista_play(play *v, int *n) { printf("\nSegue a lista de alunos cadastrados por ordem de cadastro: \n"); for (int i = 0; i < *n; i++) { printf("\n%s\n%d\n%d\n%.1f\n%.2f\n%s\n", v[i].nome, v[i].matricula, v[i].idade, v[i].peso, v[i].altura, v[i].posicao); } } //_____________________________________________ int main() { int i, n = 0; play *v = 0; int mat = 0; char oper = 0; do{ printf("===MENU=== \n"); printf("Escolha:\nI... Cadastrar Aluno\nR... Remove Aluno\nL... Listar alunos \n"); scanf(" %c", & oper); system("cls"); switch (oper) { case 'I': ; play novo = cadastra_play(); v = insere_play(v, &n, novo); break; case 'R': scanf("%d", &mat); v = remove_play(v, &n, mat); break; case 'L': lista_play(v, &n); case 'S': system("exit"); break; default: printf("opcao invalida"); break; } } while(oper != 'S'); //for (i = 0; i < n; i++) //printf("%s\n%d\n%d\n%.1f\n%.2f%s", v[i].nome,v[i].matricula, v[i].idade, v[i].peso, v[i].altura, v[i].posicao); free(v); return 0; }
  7. Não não, você não deve desistir. Sua ajuda ta sendo essencial pra mim, graças a ela eu consegui resumir bem mais o meu código e organizar. O problema é comigo, estou aprendendo c há pouco tempo e fico muito confuso com tudo. Eu agradeço de mais por toda sua ajuda. @codigo rápido Tentarei fazer isso agora, obrigado. Acho que entendi bem e faz sentido, se o while ficar repetindo ali é claro que vai salvar só uma função kkkk, que vacilo meu
  8. @arfneto Cara, eu me sinto tão burro vendo sua explicação. Você me deu uma faca e queijo na mão e mesmo assim não estou conseguindo aplicar. Estou há um tempão quebrando a cabeça com esse código, desde ontem a noite. Eu agradeço muito pela sua atenção @codigo rápido AAA, eu consegui fazer a parte de listar e excluir. Agora o único problema é que quando eu faço mais de dois cadastros, ele só lista uma pessoa. #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct { char nome[20]; int matricula; int idade; float peso; float altura; char posicao[100]; int operacao; } play; play cadastra_play() { int num_oper = 0; play a; do { printf("Digite o seu nome: \n"); scanf(" %[^\n]s", a.nome); printf("Digite sua matricula: \n"); scanf("%d", &a.matricula); printf("Digite sua idade: \n"); scanf("%d", &a.idade); printf("Digite seu peso: \n"); scanf("%f", &a.peso); printf("Digite sua altura: \n"); scanf("%f", &a.altura); printf("Digite a posicao que voce pretende jogar: \n"); scanf(" %[^\n]s", a.posicao); printf("Deseja cadastrar mais aluno? (1 - para sim e 2- para não )\n"); scanf("%d", & num_oper); system("cls"); } while (num_oper == 1); printf("\n"); return a; } play * insere_play(play *v, int *n, play novo) { v = (play*) realloc(v, (*n + 1) * sizeof(play)); if (v == 0) { printf("Ops! não estamos conseguindo inserir o aluno"); } v[*n] = novo; (*n)++; return v; } play *remove_play(play *v, int *n, int matricula) { for (int i = 0; i < *n; i++) { if (v[i].matricula == matricula) { // 1 2 3 4 | 1 3 3 4 | 1 3 4 4 | 1 3 4 for(int j = i; j < *n - 1; j++) { v[j] = v[j+1]; } v = (play*) realloc(v, (*n - 1) * sizeof(play)); if (v == 0) { printf("Ops! não foi possivel remover alunos"); return 0; } (*n)--; break; } } return v; } //______________________________________ void lista_play(play *v, int *n) { printf("\nSegue a lista de alunos cadastrados por ordem de cadastro: "); for (int i = 0; i < *n; i++) { printf("\n%s\n%d\n%d\n%.1f\n%.2f\n%s\n", v[i].nome, v[i].matricula, v[i].idade, v[i].peso, v[i].altura, v[i].posicao); } } //_____________________________________________ int main() { int i, n = 0; play *v = 0, x; int mat = 0; printf("===MENU=== \n"); //system("cls"); char oper = 0; while (oper != 'S') { printf("Escolha:\nI... Cadastrar Aluno\nR... Remove Aluno\nL... Listar alunos \n"); scanf(" %c", & oper); system("cls"); switch (oper) { case 'I': ; play novo = cadastra_play(); v = insere_play(v, &n, novo); break; case 'R': scanf("%d", &mat); v = remove_play(v, &n, mat); break; case 'L': lista_play(v, & n); case 'S': system("exit"); break; default: printf("opcao invalida"); break; } } //for (i = 0; i < n; i++) //printf("%s\n%d\n%d\n%.1f\n%.2f%s", v[i].nome,v[i].matricula, v[i].idade, v[i].peso, v[i].altura, v[i].posicao); free(v); return 0; }
  9. @arfneto Não consegui compreender essa explicação, acho que é muito complexo para eu fazer dessa forma. Vou tentar estudar mais um pouco esse modelo que você mandou e aplicar no meu código. Eu realmente não entendi, mas agradeço muito
  10. A variavel play? não entendi bem
  11. @codigo rápido O meu continua sem lsitar, eu fiz algumas mudanças (coloquei uma função para listar) e na saída fiz aquilo que voce colocou no seu código. O meu roda normal, mas não lista. voce poderia conferir? Por favor #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct { char nome[20]; int matricula; int idade; float peso; float altura; char posicao[100]; int operacao; } play; play cadastra_play() { int num_oper = 0; play a; do { printf("Digite o seu nome: \n"); scanf(" %[^\n]", a.nome); printf("Digite sua matricula: \n"); scanf("%d", & a.matricula); printf("Digite sua idade: \n"); scanf("%d", & a.idade); printf("Digite seu peso: \n"); scanf("%f", & a.peso); printf("Digite sua altura: \n"); scanf("%f", & a.altura); printf("Digite a posicao que voce pretende jogar: \n"); scanf(" %[^\n]", a.posicao); printf("Deseja cadastrar mais aluno? (1 - para sim e 2- para não )\n"); scanf("%d", & num_oper); system("cls"); } while (num_oper == 1); printf("\n"); return a; } play * insere_play(play * v, int * n, play novo) { v = (play * ) realloc(v, ( * n + 1) * sizeof(play)); if (v == 0) { printf("Ops! não estamos conseguindo inserir o aluno"); } v[ * n] = novo; ( * n) ++; return v; } play * remove_play(play * v, int * n, int matricula) { for (int i = 0; i < * n; i++) { if (v[i].matricula == matricula) { v[i] = v[ * n - 1]; v = (play * ) realloc(v, ( * n - 1) * sizeof(play)); if (v == 0) { printf("Ops! não foi possivel remover alunos"); return 0; } ( * n) --; break; } } return v; } //______________________________________ play * lista_play(play * v, int * n) { printf("\nSegue a lista de alunos cadastrados por ordem de cadastro: "); for (int i = 0; i < n; i++) { printf("%s\n%d\n%d\n%.1f\n%.2f%s", v[i].nome, v[i].matricula, v[i].idade, v[i].peso, v[i].altura, v[i].posicao); } } //_____________________________________________ int main() { int i, n = 0; play * v = 0; int mat; printf("===MENU=== \n"); char oper = 0; while (oper != 'S') { printf("Escolha:\nI... Cadastrar Aluno\nR... Remove Aluno\nL... Listar alunos \n"); scanf(" %c", & oper); system("cls"); switch (oper) { case 'I':; play novo = cadastra_play(); v = insere_play(v, & n, novo); break; case 'R': v = remove_play(v, & n, mat); break; case 'L': v = lista_play(v, & n); case 'S': oper='S'; break; default: printf("opcao invalida"); break; } } for (i = 0; i < n; i++) printf("%s\n%d\n%d\n%.1f\n%.2f%s", v[i].nome,v[i].matricula, v[i].idade, v[i].peso, v[i].altura, v[i].posicao); free(v); return 0; }
  12. Eu alterei esse exit e criei uma função para listar pessoas, mas mesmo assim ainda não vai #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct { char nome[20]; int matricula; int idade; float peso; float altura; char posicao[100]; int operacao; } play; play cadastra_play() { int num_oper = 0; play a; do { printf("Digite o seu nome: \n"); scanf(" %[^\n]", a.nome); printf("Digite sua matricula: \n"); scanf("%d", & a.matricula); printf("Digite sua idade: \n"); scanf("%d", & a.idade); printf("Digite seu peso: \n"); scanf("%f", & a.peso); printf("Digite sua altura: \n"); scanf("%f", & a.altura); printf("Digite a posicao que voce pretende jogar: \n"); scanf(" %[^\n]", a.posicao); printf("Deseja cadastrar mais aluno? (1 - para sim e 2- para não )\n"); scanf("%d", & num_oper); system("cls"); } while (num_oper == 1); printf("\n"); return a; } play * insere_play(play * v, int * n, play novo) { v = (play * ) realloc(v, ( * n + 1) * sizeof(play)); if (v == 0) { printf("Ops! não estamos conseguindo inserir o aluno"); } v[ * n] = novo; ( * n) ++; return v; } play * remove_play(play * v, int * n, int matricula) { for (int i = 0; i < * n; i++) { if (v[i].matricula == matricula) { v[i] = v[ * n - 1]; v = (play * ) realloc(v, ( * n - 1) * sizeof(play)); if (v == 0) { printf("Ops! não foi possivel remover alunos"); return 0; } ( * n) --; break; } } return v; } //______________________________________ play * lista_play(play * v, int * n) { printf("\nSegue a lista de alunos cadastrados por ordem de cadastro: "); for (int i = 0; i < n; i++) { printf("%s\n%d\n%d\n%.1f\n%.2f%s", v[i].nome, v[i].matricula, v[i].idade, v[i].peso, v[i].altura, v[i].posicao); } } //_____________________________________________ int main() { int i, n = 0; play * v = 0; int mat; printf("===MENU=== \n"); char oper = 0; while (oper != 'S') { printf("Escolha:\nI... Cadastrar Aluno\nR... Remove Aluno\nL... Listar alunos \n"); scanf(" %c", & oper); system("cls"); switch (oper) { case 'I': ; play novo = cadastra_play(); insere_play(v, & n, novo); break; case 'R': v = remove_play(v, & n, mat); break; case 'L': v = lista_play(v, & n); case 'S': system("exit"); default: printf("opcao invalida"); break; } } //for (i = 0; i < n; i++) //printf("%s\n%d\n%d\n%.1f\n%.2f%s", v[i].nome,v[i].matricula, v[i].idade, v[i].peso, v[i].altura, v[i].posicao); free(v); return 0; }
  13. Olá, boa tarde e boa sexta-feira. Estou fazendo um código para registrar alguns atletas que desejam fazer parte do time de futebol da minha sala. No entanto, não estou conseguindo fazer a opção para aparecer uma lista com as pessoas que se inscreveram. Alguém pode me ajudar? #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> typedef struct { char nome[20]; int matricula; int idade; float peso; float altura; char posicao[100]; int operacao; } play; play cadastra_play() { play a; printf("Digite o seu nome: \n"); scanf(" %[^\n]", a.nome); printf("Digite sua matricula: \n"); scanf("%d", & a.matricula); printf("Digite sua idade: \n"); scanf("%d", & a.idade); printf("Digite seu peso: \n"); scanf("%f", & a.peso); printf("Digite sua altura: \n"); scanf("%f", & a.altura); printf("Digite a posicao que voce pretende jogar: "); scanf("%s", & a.posicao); printf("\n"); printf("Obrigado pelo cadastro"); sleep(2); return a; } play * insere_play(play * v, int * n, play novo) { v = (play * ) realloc(v, ( * n + 1) * sizeof(play)); if (v == 0) { printf("Ops! não estamos conseguindo inserir o aluno"); } v[ * n] = novo; ( * n) ++; return v; } play * remove_play(play * v, int * n, int matricula) { for (int i = 0; i < * n; i++) { if (v[i].matricula == matricula) { v[i] = v[ * n - 1]; v = (play * ) realloc(v, ( * n - 1) * sizeof(play)); if (v == 0) { printf("Ops! não foi possivel remover alunos"); return 0; } ( * n) --; break; } } return v; } int main() { int num_oper = 0, i, n = 0; play * v = 0; int mat; char oper = 0; while (oper != 'S') { system("cls"); printf("===MENU=== \n"); printf("Escolha: I... Cadastrar Aluno\nR: Remove Aluno\nS: Sair do programa \n"); scanf(" %c", & oper); switch (oper) { case 'I': ; play novo = cadastra_play(); insere_play(v, & n, novo); break; case 'R': scanf("%d\n", & mat); v = remove_play(v, & n, mat); break; case 'L': //inserir para listar case 'S': exit(1); break; default: printf("opcao invalida"); break; } } for (i = 0; i < n; i++) printf("%s\n%d\n%d\n%.1f\n%.2f%s", v[i].nome, v[i].matricula, v[i].idade, v[i].peso, v[i].altura, v[i].posicao); free(v); return 0; }
  14. @Matheus Dutra Sim sim, eu compreendi. Mas acho que nada do que você respondeu tem sentido com a pergunta. Acho que a pergunta ainda continuo vazia.
  15. Olá, bom dia. Eu vi uma pergunta em um slide do meu curso e eu não consegui pensar em uma resposta para essa pergunta. Ela é ''Como um mesmo algoritmo pode ser executado tanto em hardware quanto em software?'' Alguém poderia me explicar?

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

Curso de Hacker Ético

LANÇAMENTO!

CLIQUE AQUI E CONFIRA!

* Este curso não é ministrado pela equipe do Clube do Hardware.