Jump to content

Search the Community

Showing results for tags 'c'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Comunidade
    • Sugestões, Críticas ou Dúvidas relativas ao P@P
    • Acerca do P@P
  • Comunidade a Trabalhar
    • Apresentação de Projectos de Programação
    • Downloads
    • Revista PROGRAMAR
  • Desenvolvimento Geral
    • C
    • C++
    • Java
    • Pascal
    • Python
    • Bases de Dados
    • Dispositivos Móveis
    • Outras Linguagens
  • Desenvolvimento Orientado para Web
    • PHP
    • HTML
    • CSS
    • Javascript
    • Outras Linguagens de WebDevelopment
    • Desenvolvimento Web
  • Desenvolvimento .NET
    • C#
    • Visual Basic .NET
    • ASP.NET
    • WPF & SilverLight
  • Software e Sistemas Operativos
    • Software de Produtividade
    • Sistemas Operativos
    • Apresentação de Software
  • Informática
    • Interfaces Visuais
    • Computação Gráfica
    • Algoritmia e Lógica
    • Segurança e Redes
    • Hardware
    • Electrónica e Automação Industrial
    • Matemática
    • Software de Contabilidade e Finanças
    • Dúvidas e Discussão de Programação
  • Outras Áreas
    • Notícias de Tecnologia
    • Dúvidas Gerais
    • Discussão Geral
    • Eventos
    • Anúncios de Emprego
    • Tutoriais
    • Snippets / Armazém de Código
  • Arquivo Morto
    • Projectos Descontinuados
    • System Empires

Blogs

  • Blog dos Moderadores
  • Eventos
  • Notícias de Tecnologia
  • Blog do Staff
  • Revista PROGRAMAR
  • Projectos
  • Wiki

Categories

  • Revista PROGRAMAR
  • Tutoriais
  • Textos Académicos
  • Exercícios Académicos
    • Exercícios c/ Solução
    • Exercícios s/ Solução
  • Bibliotecas e Aplicações
  • Outros

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

  1. #include <iostream> #include <string.h> int main (){ int i; char telefone[20]; char ch; i=0 while((ch=getchar ())) 1='\n') ( if (ch=='-')telefone[1]='-'; else if (ch >=48 && ch <=57) telefone [i]=ch; else if (ch >=65 && ch <=67) telefone [i]='2'; else if (ch >=68 && ch <=70) telefone [i]='3'; else if (ch >=71 && ch <=73) telefone [i]='4'; else if (ch >=74 && ch <=76) telefone [i]='5'; else if (ch >=77 && ch <=79) telefone [i]='6'; else if (ch >=80 && ch <=83) telefone [i]='7'; else if (ch >=84 && ch <=86) telefone [i]='8'; else if (ch >=87 && ch <=90) telefone [i]='9'; i++; } telefone[i]='\0'; printf("%s", telefone); return(0); }
  2. Luis Santos

    Guardar e abrir dados no disco

    Tenho um programa para a faculdade e está a funcionar perfeitamente, o meu único problema e não sei por onde começar é como guardar as informações armazenadas ao abrir novamente o programa, é através de um ciclo em que puxo o ficheiro?
  3. Ana Silva

    Estrutura de Jogadores

    Eu tenho de fazer estruturas para armazenar jogadores e jogos a minh duvida é como posso fazer para eliminar os jogadores presentes no ficheiro de texto alem do mais preciso ordenar a tabela de jogadores e editar a parte do peso e numero de jogos Será que alguem pode ajudar? O meu código é o seguinte: #include <stdio.h> #include <stdlib.h> #include <string.h> FILE * dados_jogador; FILE * dados_jogo; FILE * dados_gerais; int n_jogos = 0; int n_jogadores = 0; struct dados_jogador { int numero; char nome[12]; int dia; int mes; int ano; float altura; float peso; int n_jogos; }; typedef struct dados_jogador jogador; void ler_jogador(jogador listaJogadores[]){ printf("numero de jogadores: %d\n", n_jogadores); if(n_jogadores == 0){ dados_jogador = fopen("dados_jogador.txt", "a"); fprintf(dados_jogador, "Num Nome Data de nascimento Altura Peso Numero de Jogos\n"); fclose(dados_jogador); } if(n_jogadores >= 0 && n_jogadores <= 12){ printf("\nDADOS DO JOGADOR:\n"); listaJogadores[n_jogadores].numero = n_jogadores; printf("nome:"); scanf("%s", listaJogadores[n_jogadores].nome); printf("data de nascimento (do tipo dd/mm/aaaa):"); scanf("%d/%d/%d", &listaJogadores[n_jogadores].dia, &listaJogadores[n_jogadores].mes, &listaJogadores[n_jogadores].ano); if ((listaJogadores[n_jogadores].dia >= 01 && listaJogadores[n_jogadores].dia <= 30) && (listaJogadores[n_jogadores].mes == 04 || listaJogadores[n_jogadores].mes == 06 || listaJogadores[n_jogadores].mes == 9 || listaJogadores[n_jogadores].mes == 11)){ } if (listaJogadores[n_jogadores].dia >= 01 && listaJogadores[n_jogadores].dia <= 31 && (listaJogadores[n_jogadores].mes == 01 || listaJogadores[n_jogadores].mes == 03 || listaJogadores[n_jogadores].mes == 05 || listaJogadores[n_jogadores].mes == 07 || listaJogadores[n_jogadores].mes == 8|| listaJogadores[n_jogadores].mes == 10 || listaJogadores[n_jogadores].mes == 12) && listaJogadores[n_jogadores].ano >= 1583){ } if (listaJogadores[n_jogadores].dia == 29 && listaJogadores[n_jogadores].dia == 2 && (listaJogadores[n_jogadores].ano % 400 == 0 || listaJogadores[n_jogadores].ano % 4 == 0 && listaJogadores[n_jogadores].ano % 100 != 0)){ } if ((listaJogadores[n_jogadores].dia >= 01 && listaJogadores[n_jogadores].dia <= 28) && (listaJogadores[n_jogadores].mes == 2)){ } if (listaJogadores[n_jogadores].dia <= 00 || listaJogadores[n_jogadores].dia > 31){ printf("dia invalido\n"); ler_jogador(listaJogadores); } if (listaJogadores[n_jogadores].mes <= 00 || listaJogadores[n_jogadores].mes > 12){ printf("mes invalido\n"); ler_jogador(listaJogadores); } if (listaJogadores[n_jogadores].ano < 1583){ printf("ano invalido\n"); ler_jogador(listaJogadores); } printf("altura:"); scanf("%f", &listaJogadores[n_jogadores].altura); if(listaJogadores[n_jogadores].altura <= 0){ ler_jogador(listaJogadores); } printf("peso:"); scanf("%f", &listaJogadores[n_jogadores].peso); if(listaJogadores[n_jogadores].peso <= 0){ ler_jogador(listaJogadores); } printf("numero de jogos:"); scanf("%d", &listaJogadores[n_jogadores].n_jogos); if(listaJogadores[n_jogadores].n_jogos < 0){ ler_jogador(listaJogadores); } dados_jogador = fopen("dados_jogador.txt", "a"); fprintf(dados_jogador, "%d \t\t%s \t\t %02d/%02d/%d\t\t %.2f\t\t %.2f\t\t %d\n", listaJogadores[n_jogadores].numero, listaJogadores[n_jogadores].nome, listaJogadores[n_jogadores].dia, listaJogadores[n_jogadores].mes, listaJogadores[n_jogadores].ano, listaJogadores[n_jogadores].altura, listaJogadores[n_jogadores].peso, listaJogadores[n_jogadores].n_jogos); fclose(dados_jogador); dados_gerais = fopen("dados_gerais.dat", "ab"); fwrite (&listaJogadores, sizeof(struct dados_jogador), 1 , dados_gerais); fclose(dados_gerais); n_jogadores++; } if(n_jogadores > 12){ printf("maximo de jogadores:12\n"); } } void consultar_jogador(jogador listaJogadores[]){ dados_jogador=fopen("dados_jogador.txt","r"); //para abrir os ficheiros para ler while(fgets(listaJogadores[n_jogadores].nome, 200, dados_jogador)!= NULL){ printf("%s", listaJogadores[n_jogadores].nome); } fclose(dados_jogador); } void eliminar_jogador(jogador listaJogadores[]) { int numero; printf("Jogadores existentes: \n"); consultar_jogador(listaJogadores); printf("Qual numero do jogador que deseja eliminar:"); scanf("%d", &numero); for(int i=numero;i<n_jogadores;i++){ listaJogadores[numero] = listaJogadores[numero+1]; dados_jogador = fopen("dados_jogador.txt", "w+"); fprintf(dados_jogador, "Num Nome Data de nascimento Altura Peso Numero de Jogos\n%d \t\t%s \t\t %02d/%02d/%d\t\t %.2f\t\t %.2f\t\t %d\n", listaJogadores[n_jogadores].numero, listaJogadores[n_jogadores].nome, listaJogadores[n_jogadores].dia, listaJogadores[n_jogadores].mes, listaJogadores[n_jogadores].ano, listaJogadores[n_jogadores].altura, listaJogadores[n_jogadores].peso, listaJogadores[n_jogadores].n_jogos); fclose(dados_jogador); } n_jogadores--; } void editar_jogador(jogador listaJogadores[]){ int num; printf("Jogadores existentes: \n"); consultar_jogador(listaJogadores); printf("Qual numero do jogador que deseja editar:"); scanf("%d", &num); printf("Peso:"); scanf("%f", &listaJogadores[num].peso); printf("Numero de jogos: "); scanf("%d", &listaJogadores[num].n_jogos); } void procurar_jogador(jogador listaJogadores[]){ char numero; printf("Numero do jogador a procurar: "); scanf("%d", numero); printf("Nome: %s\nData de nascimento: %02d/%02d/%d\nAltura: %.2f\nPeso:%.2f\nNumero de jogos:%d", listaJogadores[numero].nome, listaJogadores[numero].dia, listaJogadores[numero].mes, listaJogadores[numero].ano, listaJogadores[numero].altura, listaJogadores[numero].peso, listaJogadores[numero].n_jogos); } struct dados_jogo { int dia; int mes; int ano; char local[50]; char adversario[50]; char resultado[50]; }; typedef struct dados_jogo jogo; void ler_jogo(jogo listaJogos[]) { printf("numero de jogos: %d\n",n_jogos); if(n_jogos == 0){ dados_jogo = fopen("dados_jogo.txt", "a"); fprintf(dados_jogo, "Data Local Adversario Resultado "); fclose(dados_jogo); } if(n_jogos >= 0 && n_jogos < 100){ printf("\nDADOS DO JOGO:\n"); printf("data (do tipo dd/mm/aaaa):"); scanf("%d/%d/%d",&listaJogos[n_jogos].dia, &listaJogos[n_jogos].mes, &listaJogos[n_jogos].ano); if ((listaJogos[n_jogos].dia >= 01 && listaJogos[n_jogos].dia <= 30) && (listaJogos[n_jogos].mes == 04 || listaJogos[n_jogos].mes == 06 || listaJogos[n_jogos].mes == 9 || listaJogos[n_jogos].mes == 11)){ } if (listaJogos[n_jogos].dia >= 01 && listaJogos[n_jogos].dia <= 31 && (listaJogos[n_jogos].mes == 01 || listaJogos[n_jogos].mes == 03 || listaJogos[n_jogos].mes == 05 || listaJogos[n_jogos].mes == 07 || listaJogos[n_jogos].mes == 8|| listaJogos[n_jogos].mes == 10 || listaJogos[n_jogos].mes == 12) && listaJogos[n_jogos].ano >= 1583){ } if (listaJogos[n_jogos].dia == 29 && listaJogos[n_jogos].dia == 2 && (listaJogos[n_jogos].ano % 400 == 0 || listaJogos[n_jogos].ano % 4 == 0 && listaJogos[n_jogos].ano % 100 != 0)){ } if ((listaJogos[n_jogos].dia >= 01 && listaJogos[n_jogos].dia <= 28) && (listaJogos[n_jogos].mes == 2)){ } if (listaJogos[n_jogos].dia <= 00 || listaJogos[n_jogos].dia > 31){ printf("dia invalido\n"); ler_jogo(listaJogos); } if (listaJogos[n_jogos].mes <= 00 || listaJogos[n_jogos].mes > 12){ printf("mes invalido\n"); ler_jogo(listaJogos); } if (listaJogos[n_jogos].ano < 1583){ printf("ano invalido\n"); ler_jogo(listaJogos); } printf("local:"); scanf("%s", listaJogos[n_jogos].local); printf("adversario:"); scanf("%s", listaJogos[n_jogos].adversario); printf("resultado:"); scanf("%s", listaJogos[n_jogos].resultado); dados_jogo = fopen("dados_jogo.txt", "a"); fprintf(dados_jogo, "\n%02d/%02d/%d %s %s %s", listaJogos[n_jogos].dia, listaJogos[n_jogos].mes, listaJogos[n_jogos].ano, listaJogos[n_jogos].local, listaJogos[n_jogos].adversario, listaJogos[n_jogos].resultado); fclose(dados_jogo); dados_gerais = fopen("dados_gerais.dat", "ab"); fwrite (&listaJogos, sizeof(struct dados_jogo), 1 , dados_gerais); fclose(dados_gerais); n_jogos++; } if(n_jogos >= 100){ printf("limite excedido de jogos:100\n"); } } void ordenar_Nome(jogador listaJogadores[]){ } void contabilizar(jogo listaJogos[]){ } int main(int argc, char *argv[]) { jogador listaJogadores[12]; jogo listaJogos[100]; char opcao; dados_jogador=fopen("dados_jogador.txt","r"); //para abrir os ficheiros para ler while(fgets(listaJogadores[n_jogadores].nome, 200, dados_jogador)!= NULL){ n_jogadores++; } if(n_jogadores != 0){ n_jogadores--; } fclose(dados_jogador); dados_jogo=fopen("dados_jogo.txt","r"); //para abrir os ficheiros para ler while(fgets(listaJogos[n_jogos].local, 200, dados_jogo)!= NULL){ n_jogos++; } if(n_jogadores != 0){ n_jogos--; } fclose(dados_jogo); do{ printf(" MENU INICIAL:\n"); printf("Escolha uma das opcoes:\n"); printf("1- Inserir jogador \n"); printf("2- Editar jogador \n"); printf("3- Procurar jogador \n"); printf("4- Eliminar jogador \n"); printf("5- Inserir jogo \n"); printf("6- Contabilizar \n"); printf("7- Sair do programa \n"); fflush(stdin); printf("opcao:"); scanf("%c", &opcao); switch(opcao){ case '1': ler_jogador(listaJogadores); break; //escolha das opcoes e suas funcoes case '2': editar_jogador(listaJogadores); break; case '3': procurar_jogador(listaJogadores); break; case '4': eliminar_jogador(listaJogadores); break; case '5': ler_jogo(listaJogos); break; case '6': contabilizar(listaJogos); break; case '7': return 0; default: printf("Opcao invalida\n");break; } } while (opcao != '7'); return 0; } O conteudo do ficheiro de texto dos jogadores é : Num Nome Data de nascimento Altura Peso Numero de Jogos 0 Peter 12/07/1970 1.70 70.00 2 1 Luis 21/08/1980 1.80 80.00 4 2 Kyle 13/08/1980 1.70 78.00 2 3 John 03/03/1970 1.79 80.00 2 4 Hugo 02/09/1980 1.70 68.00 4 Desde já agradeço a vossa ajuda
  4. #include <stdio.h> #include <stdlib.h> #include <time.h> struct frame { char b1,b2; int ball1,ball2,score; }; int ball(int pins) { int jogada; printf("Entre com a pontuação da jogada: "); scanf("%d", &jogada); return jogada; } void get_frame(struct frame *f) { f->ball1 = ball(10); if(f->ball1==10) { f->ball2 = 0; f->b1 = ' '; f->b2 = 'X'; f->score = 10; return; } f->ball2 = ball(10 - f->ball1); f->score = f->ball1 + f->ball2; f->b1 = f->ball1 ? '0' + f->ball1 : '-'; f->b2 = f->ball2 ? '0' + f->ball2 : '-'; if( f->score==10 ) f->b2 = '/'; } int main() { struct frame game[12]; int x,score; srand((unsigned)time(NULL)); score = 0; /* Simulate 12 potential frames */ for(x=0;x<12;x++) get_frame(&game[x]); /* properly calculate the scores */ for(x=0;x<10;x++) { if( game[x].b2 == 'X' ) { if( game[x+1].b2 == 'X' ) score += 10 + game[x+1].ball1 + game[x+2].ball1; else score += 10 + game[x+1].score; } else if( game[x].b2 == '/' ) score += 10 + game[x+1].ball1; else score += game[x].score; game[x].score = score; } /* Display first row, frame numbers */ for(x=0;x<10;x++) printf(" %2d ",x+1); putchar('\n'); /* Second row, balls rolled */ for(x=0;x<9;x++) { if( game[x].b2 == 'X') printf("| |X"); else printf("| %c|%c",game[x].b1,game[x].b2); } /* Special output for 10th frame */ if( game[x].b2 == 'X') { if( game[x+1].b2 == 'X') { if( game[x+2].b2 == 'X') printf("| X|X|X|\n"); else printf("| X|X|%c|\n",game[x+2].b1); } else printf("| X|%c|%c|\n",game[x+1].b1,game[x+1].b2); } else if( game[x].b2 == '/') { if( game[x+1].b2 == 'X') printf("| %c|/|X|\n",game[x].b1); else printf("| %c|/|%c|\n",game[x].b1,game[x+1].b1); } else printf("| %c|%c| |\n",game[x].b1,game[x].b2); /* Third row, scores */ for(x=0;x<9;x++) { printf("| %3d",game[x].score); } printf("| %3d |\n",game[x].score); return(0); }
  5. fortunecat

    Ordenar uma palavra por ordem alfabética

    Pergunta: "Escreva um programa que ordene alfabeticamente, de forma crescente, as letras existente numa “string” previamente pedida ao utilizador. Esta ordenação deverá ser efetuada num vetor auxiliar que será inicializado com os endereços de memória de cada uma das letras existente na “string”. A construção deste vetor, o qual é constituído por endereços de memória, não poderá alterar a “string” original." Por exemplo: a palavra "ana", no output ficaria "aan" Já tentei mas não percebo porque está a dar erro #include <stdio.h> #include <string.h> void ordenarString(char *string, int tamanho); main() { char string[100]; int tamanho; printf("Introduza uma palavra\n"); gets(string); tamanho=strlen(string); ordenarString(string,tamanho); scanf("%d",&string); } void ordenarString(char *string, int tamanho){ int i, j, *aux[tamanho]; for(i=0;i<10;i++){ for(j=i+1;j<10;j++){ if(strcmp(string[j], string[i])==-1){ strcpy(aux, string[i]); strcpy(string[i], string[j]); strcpy(string[j], aux); } } } } Obrigada desde já!
  6. Ana Silva

    Torneios entre equipas

    Boa Tarde, Eu tenho de criar um projeto com estruturas de equipas em que cada equipa vai ter um torneio com outra aleatoria e tenho de criar tabelas com as equipas e os resultados eliminando assim equipa a equipa até chegar à vencedora. Eu para já só criei as estruturas e a inserção de jogadores e tudo mais. Como acham que posso criar tabelas das equipas aleatorias e os seus respetivos torneios? O meu codigo é o seguinte: #include <stdio.h> #include <stdlib.h> #include <string.h> FILE * dados_jogador; FILE * dados_jogo; FILE * dados_gerais; int n_jogos = 0; int i; int n_jogadores = 0; struct dados_jogador { char nome[12]; int dia; int mes; int ano; float altura; float peso; int n_jogos; }; typedef struct dados_jogador jogador; jogador tabela[12]; jogador ler_jogador() { int i; int num; jogador jogador; printf("Qual o numero de jogadores que deseja adicionar:"); scanf("%d", &num); if(num > 0 && num <= 12){ for(int i = 0; i < num; i++){ printf("\nDADOS DO JOGADOR:\n"); printf("nome:"); scanf("%s", jogador.nome); printf("data de nascimento:"); scanf("%d/%d/%d", &jogador.dia, &jogador.mes, &jogador.ano); if ((jogador.dia >= 01 && jogador.dia <= 30) && (jogador.mes == 04 || jogador.mes == 06 || jogador.mes == 9 || jogador.mes == 11)){ } if (jogador.dia >= 01 && jogador.dia <= 31 && (jogador.mes == 01 || jogador.mes == 03 || jogador.mes == 05 || jogador.mes == 07 || jogador.mes == 8|| jogador.mes == 10 || jogador.mes == 12) && jogador.ano >= 1583){ } if (jogador.dia == 29 && jogador.dia == 2 && (jogador.ano % 400 == 0 || jogador.ano % 4 == 0 && jogador.ano % 100 != 0)){ } if ((jogador.dia >= 01 && jogador.dia <= 28) && (jogador.mes == 2)){ } if (jogador.dia <= 00 || jogador.dia > 31){ printf("dia invalido\n"); ler_jogador(); } if (jogador.mes <= 00 || jogador.mes > 12){ printf("mes invalido\n"); ler_jogador(); } if (jogador.ano < 1583){ printf("ano invalido\n"); ler_jogador(); } printf("altura:"); scanf("%f", &jogador.altura); if(jogador.altura <= 0){ ler_jogador(); } printf("peso:"); scanf("%f", &jogador.peso); if(jogador.peso <= 0){ ler_jogador(); } printf("numero de jogos:"); scanf("%d", &jogador.n_jogos); if(jogador.n_jogos < 0){ ler_jogador(); } dados_jogador = fopen("dados_jogador.txt", "a"); fprintf(dados_jogador, "\n%s \t\t%02d/%02d/%d\t\t%.2f\t\t%.2f\t\t%d", jogador.nome, jogador.dia, jogador.mes, jogador.ano, jogador.altura, jogador.peso, jogador.n_jogos); fclose(dados_jogador); dados_gerais = fopen("dados_gerais.dat", "ab"); fwrite (&jogador.nome, sizeof(struct dados_jogador), 1 , dados_gerais); fclose(dados_gerais); n_jogadores++; }} printf("maximo de jogadores:12\n"); } jogador consultar_jogador(){ jogador jogador; int i; printf("numero jogadores: %d\n",n_jogadores); printf("Jogadores existentes:\n"); for(i=0; i<n_jogadores; i++){ printf("%s\n", jogador.nome); } } jogador eliminar_jogador() { jogador jogador; int i; printf("Jogadores existentes: \n"); dados_jogador = fopen("dados_jogador.txt", "r"); for(int i = 0; i< n_jogadores; i++){ fscanf(dados_jogador, "%s", jogador.nome[n_jogadores]); fclose(dados_jogador); } } void procurar_jogador(){ jogador jogador; char nome_jogador; printf("Qual o nome do jogador que procura:"); scanf("%s", nome_jogador); for(int i = 0; i < n_jogadores; i++){ if((nome_jogador,jogador.nome) == 0){ printf("Nome: %s\nData de nascimento: %02d/%02d/%d\nAltura: %.2f\nPeso:%.2f\nNumero de jogos:%d", tabela[i].nome, tabela[i].dia, tabela[i].mes, tabela[i].ano, tabela[i].altura, tabela[i].peso, tabela[i].n_jogos); }} } struct dados_jogo { int dia; int mes; int ano; char local[50]; char adversario[50]; char resultado[50]; }; typedef struct dados_jogo jogo; jogo ler_jogo() { jogo jogo; printf("\nDADOS DO JOGO:\n"); printf("data:"); scanf("%d/%d/%d",&jogo.dia, &jogo.mes, &jogo.ano); if ((jogo.dia >= 01 && jogo.dia <= 30) && (jogo.mes == 04 || jogo.mes == 06 || jogo.mes == 9 || jogo.mes == 11)){ } if (jogo.dia >= 01 && jogo.dia <= 31 && (jogo.mes == 01 || jogo.mes == 03 || jogo.mes == 05 || jogo.mes == 07 || jogo.mes == 8|| jogo.mes == 10 || jogo.mes == 12) && jogo.ano >= 1583){ } if (jogo.dia == 29 && jogo.dia == 2 && (jogo.ano % 400 == 0 || jogo.ano % 4 == 0 && jogo.ano % 100 != 0)){ } if ((jogo.dia >= 01 && jogo.dia <= 28) && (jogo.mes == 2)){ } if (jogo.dia <= 00 || jogo.dia > 31){ printf("dia invalido\n"); ler_jogo(); } if (jogo.mes <= 00 || jogo.mes > 12){ printf("mes invalido\n"); ler_jogo(); } if (jogo.ano < 1583){ printf("ano invalido\n"); ler_jogo(); } printf("local:"); scanf("%s", jogo.local); printf("adversario:"); scanf("%s", jogo.adversario); printf("resultado:"); scanf("%s", jogo.resultado); dados_jogo = fopen("dados_jogo.txt", "a"); fprintf(dados_jogo, "\n%02d/%02d/%d %s %s %s", jogo.dia, jogo.mes, jogo.ano, jogo.local, jogo.adversario, jogo.resultado); fclose(dados_jogo); } int main(int argc, char *argv[]) { jogador jogador[12]; jogo jogo[100]; char opcao; dados_jogador=fopen("dados_jogador.txt","r"); //para abrir os ficheiros para ler i=0; while(fscanf(dados_jogador, "%s", jogador[i].nome)!= EOF){ i++; n_jogadores++; } fclose(dados_jogador); do{ printf(" MENU INICIAL:\n"); printf("Escolha uma das opcoes:\n"); printf("1- Inserir jogador \n"); printf("2- Editar jogador \n"); printf("3- Procurar jogador \n"); printf("4- Eliminar jogador \n"); printf("5- Inserir jogo \n"); printf("6- Contabilizar \n"); printf("7- Sair do programa \n"); fflush(stdin); printf("opcao:"); scanf("%c", &opcao); switch(opcao){ case '1': ler_jogador(); break; //escolha das opcoes e suas funcoes case '2': consultar_jogador(); break; case '3': procurar_jogador(); break; case '4': eliminar_jogador(); break; case '5': ler_jogo(); break; case '6': break; case '7': return 0; default: printf("Opcao invalida\n");break; } } while (opcao != '7'); return 0; }
  7. Ana Silva

    Nome de ficheiro com data atual

    Oi pessoal! Será que alguem pode me dizer como posso colocar o ficheiro binario com o nome da data atual e hora? O meu codigo está assim: #include <stdio.h> #include <time.h> struct dados_cliente{ char nome[10]; float valor; }; typedef struct dados_cliente dados; int escrever_ficheiro() { time_t ddh; time(&ddh); char nome = ctime(&ddh); dados dados_cliente; printf("Insira nome cliente:"); scanf("%s",dados_cliente.nome); printf("valor:"); scanf("%.2f", dados_cliente.valor); FILE* dados; dados= fopen(nome+".dat", "ab"); fprintf(dados, "%s %s %.2f", ctime(&ddh), dados_cliente.nome, dados_cliente.valor); fclose(dados); } int main() { time_t ddh; time(&ddh); escrever_ficheiro(); return 0; } Agradeço desde já!
  8. francisco esley

    Pilha Linguagem C

    Olá pessoa, bom dia/ boa noite. Estou a ter sérios problemas com uma atividade da faculdade na qual não consigo fazer, gostaria de saber podem me ajudar com a seguinte atividade por favor: Considere a implementação em linguagem C da estrutura de dados pilha com tamanho fixo. #define tam 10 struct pilha{ int dados[tam]; int primeiro; int ultimo; }; pilha p; void pop(){ p.dados[p.ultimo-1] = 0; p.ultimo--; } A Pilha é uma das estruturas mais simples e mais versáteis dentre as utilizadas na computação. A pilha é uma estrutura em a entrada e a saída de dados se dão pela mesma extremidade, chamada de topo da pilha. São estruturas conhecidas como Last In, First Out (LIFO), que pode ser traduzido por Último a Entrar, Primeiro a Sair. Você recebeu o código parcialmente implementado, conforme o código apresentado acima. Seu gerente de projetos, solicitou que você complete este código incluindo as funções: inclusão de elementos PUSH(), função de exibir o pilha DISPLAY(), função principal MAIN(). Considere que durante a execução o usuário do programa executou as seguintes ações 1 - Executou a função POP(), porém o vetor está vazio. 2 - Foi executo 3 vezes a função PUSH(); 3 - Executou 1 vez a função DISPLAY(); Neste caso específico, descreva o comportamento da pilha mediante a esta sequência de execuções. Desculpa por pedir algo desse tipo aqui...
  9. Ana Silva

    Menu em C (structs)

    Oi pessoal! Eu estou fazendo um trabalho de gerir uma equipa de um desporto à escolha e preciso criar estruturas para colocar as informações dos jogadores e os seus respetivos jogos. O problema é que eu sou iniciante em estruturas tenho de fazer uma tabela e apresentá-la em ficheiro de texto e não sei como fazer a não ser em modo manual no entanto ficam tortas as linhas. O meu segundo problema é que tenho de criar um ficheiro binário com os dados de todos os jogadores e jogos como posso fazer isso? Alguém pode ajudar? Isto é o que eu tenho até agora: #include <stdio.h> FILE * dados_jogador; FILE * dados_jogo; FILE * dados_gerais; int i, j; struct dados_jogador { char nome[50]; int dia; int mes; int ano; float altura; float peso; int n_jogos; }; typedef struct dados_jogador jogador; jogador ler_jogador() { jogador jogador; printf("\nDADOS DO JOGADOR:\n"); printf("nome:"); scanf("%s", jogador.nome); printf("data de nascimento:"); scanf("%d/%d/%d", &jogador.dia, &jogador.mes, &jogador.ano); if ((jogador.dia >= 01 && jogador.dia <= 30) && (jogador.mes == 04 || jogador.mes == 06 || jogador.mes == 9 || jogador.mes == 11)){ } if (jogador.dia >= 01 && jogador.dia <= 31 && (jogador.mes == 01 || jogador.mes == 03 || jogador.mes == 05 || jogador.mes == 07 || jogador.mes == 8|| jogador.mes == 10 || jogador.mes == 12) && jogador.ano >= 1583){ } if (jogador.dia == 29 && jogador.dia == 2 && (jogador.ano % 400 == 0 || jogador.ano % 4 == 0 && jogador.ano % 100 != 0)){ } if ((jogador.dia >= 01 && jogador.dia <= 28) && (jogador.mes == 2)){ } if (jogador.dia <= 00 || jogador.dia > 31){ printf("dia invalido\n"); ler_jogador(); } if (jogador.mes <= 00 || jogador.mes > 12){ printf("mes invalido\n"); ler_jogador(); } if (jogador.ano < 1583){ printf("ano invalido\n"); ler_jogador(); } printf("altura:"); scanf("%f", &jogador.altura); if(jogador.altura <= 0){ ler_jogador(); } printf("peso:"); scanf("%f", &jogador.peso); if(jogador.peso <= 0){ ler_jogador(); } printf("numero de jogos:"); scanf("%d", &jogador.n_jogos); if(jogador.n_jogos < 0){ ler_jogador(); } dados_jogador = fopen("dados_jogador.txt", "a"); fprintf(dados_jogador, "\n%s %02d/%02d/%d %.2f %.2f %d", jogador.nome, jogador.dia, jogador.mes, jogador.ano, jogador.altura, jogador.peso, jogador.n_jogos); fclose(dados_jogador); dados_gerais = fopen("dados_gerais.dat", "ab"); fwrite (&jogador.nome, sizeof(struct dados_jogador), 1 , dados_gerais); fclose(dados_gerais); } struct dados_jogo { int dia; int mes; int ano; char local[50]; char adversario[50]; char resultado[50]; }; typedef struct dados_jogo jogo; jogo ler_jogo() { jogo jogo; printf("\nDADOS DO JOGO:\n"); printf("data:"); scanf("%d/%d/%d",&jogo.dia, &jogo.mes, &jogo.ano); printf("local:"); scanf("%s", jogo.local); printf("adversario:"); scanf("%s", jogo.adversario); printf("resultado:"); scanf("%s", jogo.resultado); dados_jogo = fopen("dados_jogo.txt", "a"); fprintf(dados_jogo, "\n%02d/%02d/%d %s %s %s\n", jogo.dia, jogo.mes, jogo.ano, jogo.local, jogo.adversario, jogo.resultado); fclose(dados_jogo); } int main(int argc, char *argv[]) { char opcao; do{ printf(" MENU INICIAL:\n"); printf("Escolha uma das opcoes:\n"); printf("1- Inserir jogador \n"); printf("2- Editar jogador \n"); printf("3- Procurar jogador \n"); printf("4- Eliminar jogador \n"); printf("5- Inserir jogo \n"); printf("6- Contabilizar \n"); printf("7- Sair do programa \n"); fflush(stdin); printf("opcao:"); scanf("%c", &opcao); switch(opcao){ case '1': ler_jogador(); break; //escolha das opcoes e suas funcoes case '2': break; case '3': break; case '4': break; case '5': ler_jogo(); break; case '6': break; case '7': return 0; default: printf("Opcao invalida\n");break; } } while (opcao != '7'); return 0; }
  10. HYPER

    Matrizes dinâmicas

    Olá a todos, Estou em Engenharia Informática e preciso de fazer um trabalho (que é o jogo do semáforo) onde tenho que fazer um tabuleiro (char) com alocação de memória. Neste momento estou preso numa função em que tenho que adicionar uma linha ou uma coluna dependendo do que o utilizador quiser fazer. Alguém me consegue ajudar? Obrigado.
  11. Alguém pode me ajudar? Escreva um programa C que armazene um endereço, contendo: rua (string), número (int), bairro (string) e cidade (string). O programa tem que ler as informações e exibi-las. Fiz o código assim mas está dando erro #include <stdio.h> struct endereco { char rua[64]; int numero; char bairro[20]; char cidade[2]; }; int main() { struct endereco local_casa; printf("Digite rua, número, bairro e cidade um em cada linha.\n"); scanf("%s", &local_casa.rua); scanf("%i", &local_casa.numero); scanf("%s", &local_casa.bairro); scanf("%s", &local_casa.cidade); printf("Rua %s, %i, %s, %s. \n", local_casa.rua, local_casa.numero, local_casa.bairro, local_casa.cidade); return 0; }
  12. Boa tarde, gostaria que me pudessem ajudar em relação a este que me é dado quando 'corro' o programa. Vou também pôr aqui o enunciado caso queiram estar dentro do que me é pedido para implementar no programa, ou se estiver a fazer algo de mal ou faltar algo, por favor sintam-se na necessidade de expor a vossa opinião. Enunciado(ainda não fiz a alínea D): 1)Pretende-se analisar um conjunto de músicas. Cada música caracteriza-se pelo título, intérprete, ano, single (1:sim ou 0:não) e número de downloads nas plataformas aderentes. Obs:1. n, em todos os cabeçalhos das funções, representa o número de músicas no vetor lista; 2. utilize ponteiros em todas as alíneas para aceder ao valor dos atributos dos elementos do vetor. a) Defina o tipo de dados Musica e crie um vetor de nome lista, com um número de músicas definido pelo utilizador (valor disponível na variável nMusicas). b) Implemente uma função que escreva no ecrã, as características das músicas com mais do que um determinado número de downloads (parâmetro numD). void musicasDownload(Musica *lista, int n, int numD) c) Desenvolva uma função que receba a listagem de músicas e devolva quantas têm um dado intérprete. d) Desenvolva uma função que guarde num ficheiro binário, as músicas singles, não singles ou ambas (parâmetro tpMeio=’s’, ‘n’ ou ‘a´, respetivamente), posteriores a um determinado ano. A função deve ainda devolver o número médio de downloads dessas músicas. float gravaFichMusicas (Musica *lista, int n, int ano, char *nFich, char tpMeio) Obs. Sintaxes: FILE* fopen(const char* fileName, const char* mode); size_t fwrite (const void* ptr, size_t size, size_t nElements, FILE* file); #include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include <locale.h> struct Lista{ char titulo[40], inter[40]; int ano, dw; bool single; float duracao; Lista *prox; }; Lista *inicio, *fim, *aux; void inserirMusica(){ int c; Lista *novo = (struct Lista *)malloc(sizeof(struct Lista)); printf("\nNome da Musica: \t "); fgets(novo->titulo, 39, stdin); printf("Intérprete: \t "); fgets(novo->inter, 39, stdin); printf("Single: \t "); scanf("%d", &novo->single); printf("Duração da música: \t "); scanf("%f", &novo->duracao); printf("Ano de Lançamento: \t "); scanf("%i", &novo->ano); printf("Quantidade de Downloads: \t "); scanf("%i", &novo->dw); while ((c = getchar()) != '\n' && c != EOF) {} // Limpar buffer do teclado novo->prox = NULL; if (inicio == NULL){ inicio = fim = novo; }else{ fim->prox = novo; fim = novo; } } void esvaziarLista(){ char op; if (inicio == NULL){ printf("\nA fila esta vazia!\n\n"); }else{ printf("\nTem certeza que deseja esvaziar toda a lista?(s/n): "); op = getchar(); if (op == 's' || op == 'S'){ while (inicio != NULL){ aux = inicio; inicio = inicio->prox; free(aux); // Liberta memória } printf("\nA lista esvaziada com sucesso!!\n"); }else{ printf("\nA lista nao foi esvaziada!!\n"); } } } void mostrarLista(){ aux = inicio; if (inicio == NULL){ printf("\nLista de Músicas vazia!"); }else{ while (aux != NULL){ printf("Título: %s", aux->titulo); printf("Intérprete: %s", aux->inter); printf("Single: %d\n\n", aux->single); printf("Duração: %f\n\n", aux->duracao); printf("Ano de Lançamento: %i\n\n", aux->ano); printf("Quantidade de Downloads: %i\n\n", aux->dw); aux = aux->prox; } } printf("\n\n"); } void localizarInter(){ char inter[40]; aux = inicio; if (inicio == NULL){ printf("\nLista de Músicas vazia!"); }else{ printf("Digite o Intérprete que procura: "); scanf("%s", &aux); while (aux != NULL){ if (inter == aux->inter){ printf("\nIntérprete %s localizado/a!\n\n", aux->inter); printf("Título %s", aux->titulo); return; }else{ aux = aux->prox; } } if (aux == NULL){ printf("\nMúsica %s nao localizada!\n", titulo); } } printf("\n\n"); } int main(){ setlocale(LC_ALL, "Portuguese"); int op, c; do{ printf("| 1. Inserir Música |\n"); printf("| 2. Pesquisar Músicas |\n"); printf("| 3. listar Músicas |\n"); printf("| 4. Limpar Lista |\n"); printf("| 5. Sair |\n"); printf("Insira a sua escolha: "); scanf("%d", &op); while ((c = getchar()) != '\n' && c != EOF) {} // Limpar buffer switch (op){ case 1: inserirMusica(); printf("\nMusica inserida com sucesso!!\n\n"); system("pause"); break; case 2: localizarMusica(); system("pause"); break; case 3: mostrarLista(); system("pause"); break; case 4: esvaziarLista(); system("pause"); break; case 5: printf("\nO programa foi encerrado com sucesso!!\n\n"); system("pause"); break; default: printf("\nEscolha Invalida!!\n\n"); system("pause"); break; } system("cls"); }while (op != 5); return 0; }
  13. Fernando Couto

    Simular Linha Comandos

    Olá, Gostava de fazer um pequeno programa que simulasse uma linha de comandos. Em baixo tenho o esquema dum menu onde só existem 4 comandos possíveis: "ls" "ls nomedapasta" "find . -type f -mtime -1" e "find nomedapasta -type f -mtime -1" Estou com dificuldades em fazer com que o utilizador escolha a opção correta, isto é, escrevo "ls pasta1" e o resultado é "comando não encontrado" ao invés de ser "Estamos na pasta: pasta1." O programa em baixo apenas está simplificado. #include<stdio.h> #include<string.h> //Duas funções auxiliares: (main em baixo) char* pastas(int valor){ if (valor==0) return "pasta1"; if (valor==1) return "pasta2"; return ""; //Existem estas duas pastas, devolve pasta1 se o utilizador escrever "pasta1", devolve pasta2 caso escreva "pasta2" } int compara (char *primeiros){ if (primeiros[0]='l' && primeiros[1]=='s' && primeiros[2]==' ') return 1; if (primeiros[0]=='f' && primeiros [1]=='i' && primeiros[2]=='n' && primeiros[3]=='d' && primeiros[4]==' ') return 0; return -1; }//esta função verifica se o comando do utilizador começa por ls ou find e é do tipo: "ls nomedapasta" ou "find nomedapasta (...)" //Função Principal: void main(){ int num_pastas=2; char *comando[100]; while (strcmp(comando, "cd ..")!=0){ //se o utilizador escrever "cd .." deve sair do ciclo, isto não está a acontecer.... scanf("%s",&comando); if(strcmp(comando, "ls") == 0) //aqui o programa está a acertar. { printf("listar todos os ficheiros e diretorias\n"); continue;} if(strcmp(comando, "find . -type f -mtime -1") == 0) //aqui o programa está a errar. { printf("listar todos os ficheiros atualizados na última atualização\n"); continue; } if(compara(comando)==1) //se o utilizador escrever "ls nomedapasta", aqui se utilizador escrever este comando, não entra aqui mas entra no { int aviso=0,i; // primeiro if do ciclo while for(i=0;i<num_pastas;i++) { char *nome=strcat("ls ", pastas(i)); if(strcmp(comando,nome)==0) //verifica se a pasta existe. Neste programa só existem duas pastas: pasta1 e pasta2 { printf("Estamos na pasta: %s",pastas(i)); aviso=1; } if (aviso==1)break; } if (aviso==1) continue; } if(compara(comando)==0) //se o utilizador escreveu "find nomedapasta -type f -mtime -1", também não está a entrar aqui. { int aviso1=0,g; for(g=0;g<num_pastas;g++) { char nome1=strcat("find ", pastas(g)); char nome2=strcat(nome1," -type f -mtime -1"); if(strcmp(comando,nome2)==0) //verifica se a pasta existe { printf("Estamos na pasta: %s",pastas(g)); aviso1=1; } if (aviso1==1)break; } if (aviso1==1) continue; } printf("Comando não encontrado\n"); } } Ora o programa supostamente só deve escrever "Comando não encontrado" quando não se escreveu nenhum dos 4 comandos acima, ele está a escrever sempre, o que não é suposto. Só acerta quando o utilizador escreve "ls". Será que me poderiam ajudar?
  14. iatauro

    Fazer a função cosseno

    Olá, boa tarde, tudo bem? Preciso criar um código que calcule o cosseno de um número fornecido pelo usuário pela aproximação de Taylor, porém não posso utilizar da função cos() nem da função pow(). Só posso utilizar da função cos() para aproximar o valor no final #include<stdio.h> #include<math.h> float meu_cosseno(float x, int N){ float numerador, denominador, cosseno=1; int i; denominador = fatorial(N); numerador = potencia(x, N); for(i=0;i<N;i++){ cosseno = cosseno + numerador/denominador; } return cosseno; } int fatorial(int N){ int i, fat=1; for(i=1; i<(2*N)+1;i++){ fat = fat*i; } return fat; } float potencia(float x, int N){ float alternada=1, base=1, a; int i; for(i=0;i<N; i++){ base = base*x; alternada = alternada*(-1); } a = alternada*base; return a; } int main(){ float x, cosseno, cos_exato; int N; printf("Aproximacao da funcao cosseno atraves do Polinomio de Taylor\n\n"); printf("Entre com o valor de x:"); scanf("%f", &x); printf("Entre com o valor de N:"); scanf("%d", &N); cosseno = meu_cosseno(x, N); cos_exato = cos(x); printf("meu_cosseno(%.8f) = %.8f", x, cosseno); printf("cos(%f) = %.8f", x, cos_exato); return 0; } Esse é o meu código e estou recebendo o erro "conflicting type for potencia" na linha 20. Percebi que não copiou tudo, no final está faltando alguns printf para mostrar ao usuário o resultado, mas esse não altera no resultado em si. Se alguém puder me ajudar agradeceria!!
  15. Objetivo: Popular uma BD a partir de um .txt Pergunta: Que linguagem é mais simples/prática para o fazer? Descrição: Eu quero fazer um programa simples que me permita ler e escrever uma base de dados e ter uma interface gráfica que permita aplicar filtros à minha pesquisa. Estou a fazer esta pergunta porque sou novo na programação e queria saber a vossa opinião sobre como deveria fazer esta aplicação. As linguagens que sei sao: C C# C++ JAVASCRIPT PHP SQL Obrigado 😄
  16. Tiago Viana

    Leitura de um ficheiro de texto

    Boas! Tenho um codigo que fiz para q fosse feita a leitura de um ficheiro para um array de struct. No entanto dá erro a sua execução. typedef struct aluno{ int num; float nota1; float nota2; float notaP; }ALUNO; void colocarArray(ALUNO ficheiro[], int nAlunos){ int i=0; fp=fopen("alunos.txt","r"); if(fp==NULL) printf("\nErro!"); while(fscanf(fp, "\n%i;%f;%f;%f", ficheiro[i].num, ficheiro[i].nota1, ficheiro[i].nota2, ficheiro[i].notaP)!=EOF) i++; fclose(fp); }
  17. fortunecat

    Soma de n números.

    Deverá dar erro se N for inferior a 2 e voltar a pedir o seu valor. Depois somar os valores dados de N #include <stdio.h> int main(){ int n; while(n < 2) { printf("Quantos numeros pretende somar?: "); scanf("%i", &n); if(n < 2) { printf("\nERRO\n"); } } for(int op = 0; op <= n; op++){ printf("Insira o numero: \t"); } return 0; }
  18. iatauro

    Realizar um código

    Olá, preciso fazer um código em C que leia um string (informado pelo usuário) e que ache uma palavra dentro desse string( a palavra a ser procurada também será informada pelo usuário) e no final mostre quantas vezes essa palavra apareceu. Por enquanto meu código está assim, infelizmente não consegui completar, alguém poderia me ajudar? #include<stdio.h> #include<string.h> #include<stdlib.h> int main(){ system("color 47"); char texto[501], busca[26]; int i, l, k, j, soma, resultado; printf("Escreva a palavra a ser buscada: "); fflush(stdin); gets(busca); printf("\nEscreva uma frase contendo no maximo 500 caracteres: "); fflush(stdin); gets(texto); soma = 0; l = strlen(texto); k = strlen(busca); resultado = strcmp(busca, texto); for(i=0; i<l; i++){ for(j=0;j<k;j++){ if(resultado==0){ soma++; } } } printf("%d", soma); return 0; }
  19. Afonso Lopes

    Erro com system pause

    Vou considerar que com este tópico "problemas em linguagem C" possamos expor os problemas que encontramos quando tentamos preparar algo em linguagem C. Eu entrei recentemente no ensino superior e estou a aprender a programar em C, tenho tentado conhecer algo da linguagem e tenho tentado aplicar um comando (suponho que se possa chamar assim) que tem dado problemas. Este é o código que estava a usar para tentar aprender o que o comando system("pause") faz mas quando o corro apresenta-me o seguinte erro que podem ver na imagem. "sh: pause: command not found", tenho poucas bases e prática de programação então qualquer informação que me possam dar será ótima! #include <stdio.h> #include <libio.h> void main(){ printf("hello world!"); system("pause"); }
  20. H4zaky

    Projeto de programação

    Olá boa tarde, eu ando no 1ºano de Engenharia Informática e tenho um projeto de C mas tenho uma dúvida para a execução de uma parte do problema se pudessem ajudar agradecia. O problema é este: Um funcionário pode estar associado a vários projetos mas apenas pode trabal har num projeto por dia. É claro que o somatório dos dias trabalhados nos variados projetos não pode ultrapassar o número de dias do mês.
  21. Boa Tarde, Estou com problemas em criar uma formula para um software de visão sendo que quero comparar dois arrays de inteiros, eu quero a condição seja verdadeira sempre que tanto uma variável como outra forem 1. Se alguem me puder ajudar agradecia. O Software é o Adaptive Vision.
  22. Fabiana Santos

    Error no código

    algo esta errado com meu codigo e eu nao sei o que é, será que alguem pode me dar uma ajuda. Algumas coisas estao em alemao, já peco desculpas por isso. #include <stdio.h> #include <math.h> #include <stdlib.h> void main() { int gesundHeute = 0; int gesundGestern = 0; int krankeHeute = 0; int krankeGestern = 0; int immuneHeute = 0; int immuneGestern = 0; int anzahlTage = 0; int tage = 0; int gesamtPopulation; float infektionsrate; float immunisierungsrate; int Gesundethousand; printf_s("Infektionsrate:\n"); scanf_s("%f", &infektionsrate); printf_s("Immunisierungsrate:\n"); scanf_s("%f", &immunisierungsrate); printf_s("Gesamtpopulation:\n"); scanf_s("%d", &gesamtPopulation); printf_s("Kranke heute:\n"); scanf_s("%d", &krankeHeute); printf_s("Kranke gestern:\n"); scanf_s("%d", &krankeGestern); printf_s("Anzahl der Tage:\n"); scanf_s("%d", &anzahlTage); for (int i = 0; i <= tage; i++) { gesundHeute = gesundGestern - infektionsrate * (gesundGestern * krankeGestern / gesamtPopulation); printf_s("%d\n", gesundHeute); gesundGestern = gesundHeute; immuneHeute = immuneGestern + immunisierungsrate * krankeGestern; printf_s("%d \n", immuneHeute); immuneGestern = immuneHeute; krankeHeute = gesamtPopulation - gesundHeute - immuneHeute; printf_s("%d \n", krankeHeute); krankeGestern = krankeHeute; Gesundethousand = gesundHeute * (100000 / gesamtPopulation); printf_s("%d\n ", Gesundethousand); } }
  23. JonyBoy

    Problema no código

    Boa Noite, queria saber como posso fazer para mudar o "estado" neste codigo, no void que tenho queria introduzir algo como pedir o nome do filme ou o código e mudar para 0 ou mudar para 1 se este for 0. é possível ajudar ? preciso de entregar isto com urgência e estou a bloquear com os fread e fwrite #include <stdio.h> #include <stdlib.h> #define MAXDESIGNACAO 120 #define FICHEIROFILMES "filmes.dat" //definir nome do arquivo; //Variaveis utilizadas; struct Filmes { char nome[MAXDESIGNACAO]; char genero[MAXDESIGNACAO]; float codigo; int modo; int ano; int estado; }; //Escolha das funções do menu; //Aqui a função menu retorna o dado selecionado e executa a respectiva função; int main() { int opcao = 0; do { system("cls"); printf("\n---- Lista de Filmes ------"); printf("\n1-Guardar\n2-Visualizar\n3-Pesquisar\n4-Estado\n5-Sair"); opcao = lerOpcao(); switch(opcao) { case 1: guardar(); break; case 2: visualizar(); break; case 3: pesquisar(); break; case 4: estado(); break; case 5: printf("\nAte a Proxima"); break; } }while (opcao !=5); return 0; } int lerOpcao () { int opcao = 0; do { printf("\nOpcao:"); scanf("%d", &opcao); } while (opcao < 0 || opcao > 5); return opcao; } //Escrita das palavras utilizadas; //Caso não seja a que se pretende ira retornar '0'; //Ira voltar ao menu para que o utilizador volte a inserir nova opção; void guardar () { FILE *fFilmes; struct Filmes save; fFilmes = fopen(FICHEIROFILMES, "rb+"); if(!fFilmes) { fFilmes = fopen(FICHEIROFILMES, "wb"); fclose(fFilmes); fFilmes = fopen(FICHEIROFILMES, "rb+"); } //Abertura do ficheiro para rb+ fflush(stdin); printf("Nome:"); gets(save.nome); printf("Genero:"); gets(save.genero); printf("Estado (1/0):"); // 1 ativo(esta disponivel) / 0 inativo(nao esta disponivel) scanf("%d", &save.modo); printf("Codigo:"); scanf("%f", &save.codigo); printf("Ano:"); scanf("%d", &save.ano); save.estado = 1; //Dados a gravar no ficheiro fseek(fFilmes, 0, SEEK_END); fwrite (&save, sizeof(struct Filmes), 1, fFilmes); fclose(fFilmes); } void visualizar (){ FILE *fFilmes; struct Filmes save; fFilmes = fopen(FICHEIROFILMES, "rb+"); if(fFilmes) { int cVass = 0; fseek(fFilmes, 0, SEEK_SET); printf("\nNome\tGenero\tEstado\tCodigo\tAno"); while (cVass == 0) { fread(&save, sizeof(struct Filmes), 1, fFilmes); if(feof(fFilmes)) cVass=1; else { printf("\n%s\t%s\t%02d\t%.2f\t%02d", save.nome, save.genero, save.modo,save.codigo,save.ano); } } printf("\n---- FIM DE LISTAGEM ----"); printf("\n---- ATE A PROXIMA ----"); } fclose(fFilmes); getch(); } //Faz a leitura de caracteres do arquivo e mostra no ecra ate ao fim; void pesquisar (){ FILE *fFilmes; struct Filmes save; fFilmes = fopen(FICHEIROFILMES, "rb+"); if(fFilmes) { int cVass = 0; fseek(fFilmes, 0, SEEK_SET); int anoPesquisar = 0; printf("Ano a Pesquisar:"); scanf("%d", &anoPesquisar); printf("\nNome\tGenero\tEstado\tCodigo\tAno"); while (cVass == 0) { fread(&save, sizeof(struct Filmes), 1, fFilmes); if(feof(fFilmes)) cVass=1; else { if (anoPesquisar == save.ano) { printf("\n%s\t%s\t%d\t%.2f\t%02d", save.nome, save.genero, save.modo,save.codigo,save.ano); } } } printf("\n---- FIM DE LISTAGEM ----"); printf("\n---- ATE A PROXIMA ----"); } fclose(fFilmes); getch(); } void estado (){ -------------------------------- Aqui o problema ------------------------- FILE *fFilmes; struct Filmes save; fFilmes = fopen(FICHEIROFILMES, "rb+"); if(fFilmes) { int cVass = 0; fseek(fFilmes, 0, SEEK_SET); int estadoPesquisar = 0; printf(" Estado a Pesquisar:"); scanf("%d", &estadoPesquisar); printf("\nNome\tEstado"); while (cVass == 0) { fread(&save, sizeof(struct Filmes), 1, fFilmes); if(feof(fFilmes)) cVass=1; else { if (estadoPesquisar == save.modo) { printf("\n%s\t%d",save.nome,save.modo); } } } printf("\n---- FIM DE LISTAGEM ----"); printf("\n---- ATE A PROXIMA ----"); } fclose(fFilmes); getch(); }
  24. JonyBoy

    Resolução do programa

    Boa Noite, Gostaria de colocar entre programa a dar em C, ma penso que isto eta a ler um ficheiro em txt e eu queria apenas que guarda-se e depois pudesse pesquisar selecionado essa opção. Alguém consegue ajudar ? É urgente quem poder ajudar agradecia muito. // Programa para guardar filmes. // Menu iniciar que pergunta ao utilizador se deseja ler ou gravar #include <stdio.h> #include <stdlib.h> #include <string.h> //definir nome do arquivo #define arquivo "c:\\Filmes\\filmes.txt" // funções utilizadas int menu (); void ler (FILE*); int gravar (FILE*); int escrever_dados (FILE*); int main(void) { //reservar espaço na memoria; FILE *file = (FILE*)malloc(sizeof(file)); int select = 0; while (select==0) { //Escolha das funções do menu; //Aqui a função menu retorna o dado selecionado e executa a respectiva função; //Vai executar enquanto o menu não retornar o valor 3; switch(select = menu()) { case 1: ler(file); break; case 2: gravar(file); break; case 3: return 0; default: break; } } return 0; } int menu() { printf("\n Digite uma das opcoes:\n ler, gravar ou fim:"); char palavra [50]; //Espera pela palavra inserida pelo teclado e guarda a mesma na variavel "palavra" scanf("%s",palavra); //limpa o buffer do teclado; fflush (stdin); //converter todas as letras da variavel para maiusculas; strupr(palavra); //Ira aparecer entao a palavra digitada; //Caso não seja a que se pretende ira retornar '0'; //Ira voltar ao menu para que o utilizador volte a inserir nova opção; if (!strcmp(palavra, "LER") ==1) return 1; else if (!strcmp(palavra, "GRAVAR") ==1) return 2; else if (!strcmp(palavra, "FIM") ==1) return 3; else return 0; } void ler (FILE*file) { system ("cls"); printf ("\n\n"); file = fopen (arquivo,"r"); // Se o arquivo não abrir ira retornar 0, entao o negado(!) e para inverter e entrar na condição para mostrar a mensagem de erro. if (!file) { printf("\n\n Arquivo não encontrado!\n\n"); } else { char c; //Verifica se o primeiro arquivo e igual a EOF(-1), o que indica o final do arquivo; if((c = getc (file))==EOF) { printf("Arquivo esta vazio!"); } //Faz a leitura do arquivo carater a carater e mostra no ecra ate ao fim; while((c = getc(file))!= EOF) { printf("%c",c); } } //pausa getchar(); } int gravar (FILE *file) { // "a": insere no fim; se não existir arquivo ele criara com "w"; if( (file = fopen(arquivo, "a") )||(file = fopen(arquivo,"w"))) { while(escrever_dados(file)){} return 0; } } int escrever_dados(FILE *file) { char codigo[20]; char filme [20]; char genero[20]; char sair [20]; printf ("\n\nCodigo:"); //limpa buffer do teclado; fflush (stdin); //captura a string; gets (codigo); //copia a string para a variavel sair; strcpy (sair, codigo); //comparar valor da string com a palavra FIM, caso seja = sai e retorna o valor '0'; // caso sejam diferentes então continua; if(!strcmp(strupr(sair),"FIM")) return 0; printf ("Filme:"); fflush (stdin); gets (filme); strcpy (sair, filme); if(!strcmp(strupr(sair),"FIM")) return 0; printf ("Genero:"); fflush (stdin); gets (genero); strcpy (sair, genero); if(!strcmp(strupr(sair),"FIM")) return 0; fprintf (file,"\nCodigo:%s",codigo); fprintf (file," Filme:%s",filme); fprintf (file," Genero:%s",genero); return 1; }
  25. Boa tarde Preciso de uma ajuda. Estou com um ficheiro que tem dados, eu quero ao pôr o id que me devolva o nome. O problema é que não me está a funcionar corretamente, só funciona a primeira linha. Se ponho 1 dá nome, se ponho 2 o programa dá erro e fecha Esta é a parte de código que faz isso, sei que o problema está no fscanf e na forma como lê os dados mas não estou a conseguir resolver Tenho uma estrutura... while (fscanf(fadmissao, "%s %s\n", f.nint, f.nomecompleto )!= EOF) { a = strcmp(f.nint, nint2); printf("\n %s %s ", f.nint, f.nomecompleto); if (a == 0) { printf("\nLogin efetuado com sucesso."); printf("\nNone: %s.", f.nomecompleto); return 1; } else{ printf("\nerro."); return 0; } } os dados vem num ficheiro *.dat 1 gc 43 432 34 43 342 23 23 2 ies 34 43 2 23 4 34 45 23 Alguma dica?
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.