Jump to content

Search the Community

Showing results for tags 'c'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Q&A Desenvolvimento
    • Perguntas e respostas rápidas
  • Desenvolvimento e Banco de Dados
    • HTML e CSS
    • Java
    • Javascript
    • .NET
    • PHP
    • Python
    • Ruby
    • Mobile
    • Ambientes de Desenvolvimento
    • Arquitetura e Métodos Ágeis
    • Banco de Dados
    • DevOps
    • Desenvolvimento de Games
    • E-Commerce e Pagamentos Online
    • SEO e Otimizações
    • WordPress
    • Algoritmos & Outras Tecnologias
  • Design e Produto
    • Fotografia
    • Photoshop
    • Design de interfaces e UX
    • Edição/Produção de Vídeos
    • Marketing Online
    • Desenho, Ilustração e 3D
  • Entretenimento e uso pessoal
    • Geral
    • Segurança & Malwares
    • Gadgets e wearable
    • Softwares e Apps
    • Entretenimento

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Google+


Hangouts


Skype


Twitter


deviantART


Github


Flickr


LinkedIn


Pinterest


Facebook


Site Pessoal


Localização


Interesses

Found 210 results

  1. Olá, esse e meu primeiro post no forum, estou com problema para manipular dados recebidos de um arquivo Eu quero capturar esses dados e salvar em um variavel, podem com o fgets() eu so consigo printar na tela pois quando vai passar pra outra variavel ele so pega o ultimo caracter. Segue a baixo o codigo: void main(){ FILE *pont_arquivo; char caminho[100]; char tx[100]; //char c; char texto[100]; int i; //define e abre o arquivo que será formatado printf("coloque o caminho do arquivo que queira abrir\n"); gets(caminho); pont_arquivo = fopen(caminho, "r"); if (pont_arquivo == NULL){ printf ("ERRO: arquivo não encontrado ou sem permissão de acesso.\n"); exit(0); } printf("arquivo aberto.\n"); while(fgets(tx, 100, pont_arquivo) != NULL){ for( i=0; i< sizeof(tx); i++) texto[i] = tx[i]; } fclose(pont_arquivo); printf("%s", texto); } O print consegue retornar todos os valores do arquivo mas não consigo passar eles para uma variável e tratar dentro do código. ja tentei com strcpy e esse exemplo eu mandei com for pra atribuir um a um os dados, mas não consegui com nenhum dos dois. A baixo tem os dados do arquivo txt: teste{ sjdoasijd,xy jsioadja,xy jsiadj,xy ois,xy djsia,xy dijodajsi,xy jiosjodia,xy jbf23,xy 21,xy 21983,xy moisdoia,xy mh8293,xy ajksnd,xy ioaasd,xy }
  2. Linguagem C - Fazer um programa em C - 5 Comparações diferentes utilizando os métodos bubble sort, insertion sorte e selection sort e responda as questões abaixo: 1- Número médio de comparações de cada método de ordenação para cada vetor 2- Número médio de comparações de cada método de busca para cada vetor 3 - Quantas buscas são necessárias para compensar a ordenação para cada tamanho de vetor?
  3. Estou desenvolvendo um programa para trabalho de faculdade onde preciso usar estrutura de repetição para perguntar ao usuario um nome/itens armazena-los e quando o usuario nao quiser mais digitar os nomes ao sair do loop mostra todos os nomes que ele digitou. nao estou conseguindo preciso de ajuda. dese ja agradeço. meu codigo ate o momento e: #include <stdio.h> #include<stdlib.h> int main (){ char lista,lista2; int menu1,menu2; printf("***BEM-VINDO AO LISTSUPER***\n\n"); // ****Aqui o 1º menu de seleção****// printf("Escolha uma opção\n"); printf("1-inserir novos itens\n2-inserir quantidade\n3-calcular valor\n4-mostrar itens\n\n"); scanf("%i",&menu1); // ***Aqui e o loop para digitar os itens desejados****// if (menu1==1){ while(1) { printf("insira os itens\n"); scanf("%s",&lista); printf("deseja inserir novos itens? [1-sim/2-nao]\n"); scanf("%i",&menu2); if (menu2==2){ break;} } } // ***Caso ele não selecione a opção para inserir novos itens aparecera esta mensagem***// else { printf("Não ha itens inseridos\nEscolha a opção ( inserir novos itens )"); } //***Apos acabar de digitar os itens mostrar a lista dos itens digitados***// return 0; }
  4. GabiBozzano

    Programa em C [Ajuda]

    Boa tarde a todos! Tenho um programa pra entregar na faculdade e estou com algumas dificuldades. As 3 funções que o programa exige, eu já as criei, porem na main() não sei como chama-las, e não sei como criar um laço para que o jogo seja efetuado 10000 vezes, assim como não consigo fazer com que tenha a saída esperada. Não é permitido usar vetores, ponteiros, biblioteca math e etc. Qualquer dica eu apreciarei muito. Obrigada, Gabriela.
  5. Boa noite, me chamo Izaac Borges, acabei de começar aqui. Eu estava procurando um fórum de tecnologia onde eu pudesse encontrar gente disposta a me dar algumas dicas. Estou começando a programar agora, sempre gostei da ideia de programar, já tive algumas experiencias programando código para ,Arduíno coisas bem básicas mas agora estou estudando para valer e escolhi a linguagem C para começar pois já conhecia um pouco dela. Porem agora estou querendo fazer um sistema simples, onde ele armazena os seus dados(no caso seriam números de jogos da loteria) e depois você insere os números sorteados e ele diz quantos acertos você fez em cada jogo. Gostaria de saber se é possível fazer esse tipo de programa em C e se eu iria precisar de alguma outra tecnologia para banco de dados, se sim qual tecnologia recomendam para quem está iniciando e quer aprender fazendo pequenos projetos como esse.
  6. vitorianatalia

    Algoritmo Linguagem C Simples

    Sou iniciante em linguagem C e estou tentando resolver um exercício, mas não estou conseguindo. O enunciado é: Considerando a fórmula para o cálculo da distância entre dois pontos (x1, y1) e (x2, y2): a) Escreva uma função que receba como parâmetros as coordenadas de dois pontos e retorne a distância entre eles. b) Escreva um programa em C (função principal) que capture do teclado as coordenadas dos 3 vértices de um triângulo, calcule e imprima o perímetro deste triângulo, chamando a função anterior. c) Teste seu programa, simulando sua execução com as seguintes coordenadas: (4,1), (1,1), (4,5). Para resolver a a), simplesmente não conseguia nomear g como distancia que dava erro lvalue required as left operand of assignment. Para b), sei que preciso rodar a função distancia para obter os resultados de 3 contas diferentes, mas como consigo armazenar isso para somar em main depois? #include <stdio.h> #include <stdlib.h> #include <math.h> float distancia (float xa, float xb, float ya, float yb, float g) { g = sqrt(pow((xb-xa),2)+pow((yb-ya),2)); return g; } int main() { float x1, x2, y1, y2, g; // distancia entre dois pontos printf("Insira valor de x1 e x2: \n"); scanf("%f %f", &x1, &x2); printf("Insira valor de y1 e y2: \n"); scanf("%f %f", &y1, &y2); printf("A distancia entre os dois pontos e: %f", distancia(x1, x2, y1, y2, g)); return 0; }
  7. Preciso criar um programa que faça 3 execuções: A soma de todos os números pares não primos que antecedem N; A soma de todos os números ímpares não primos que antecedem N; A soma de todos os números primos que antecedem N. Mas não sei como, sei imprimir os primos, pares e impares ate n, mas fazer a soma não.
  8. Olá pessoal tudo bem? Bom, sou nova em programação com C e preciso fazer um programa que leia um número pelo teclado e o usuário deve informar se o número é em segundos, minutos ou horas. Se for em segundos, o programa deve mostrar eles convertidos em minutos e horas, se for em minutos deve mostrar eles em segundos e horas, e se for em horas deve mostrar em segundos e minutos. tentei dessa maneira, mas não sei como colocar um variável char dentro de uma condição [if/else]. aqui esta o código: #include<stdio.h> #include<stdlib.h> int main(){ int valor, h, m, s; char usu = '?'; printf("Digite um valor: "); scanf("%d", &valor); printf("O valor digitado corresponde a horas[h], minutos[m] ou segundos: "); scanf("%c", &usu); h = valor/3600; m = (valor%3600)/60; s = valor%60; if(strcmp(usu, "h")== 0){ printf("Você escolheu HORAS."); printf("O valor digitado corresponde a %d minutos e %d segundos.", m, s); }else{ if(strcmp(usu, "m")== 1){ printf("Você escolheu MINUTOS."); printf("O valor digitado corresponde a %d horas e %d minutos.", h, s); }else{ if(strcmp(usu, "s")== 2){ printf("Você escolheu SEGUNDOS."); printf("O valor digitado corresponde a %d horas e %d minutos.", h, m); }else{ } } } getchar(); }
  9. Dan Borges

    Ajuda para entender um código

    Olá, Tenho conhecimentos em C#, e ultimamente venho programando utilizando o MonoGame para desenvolver jogos. Estava procurando como é feito uma pista pseudo 3D, e achei esse artigo em JS: https://codeincomplete.com/posts/javascript-racer-v1-straight/ Por ter a lógica de programação da mente, mesmo sem saber js, entendi parte do código, mas esse trecho, não: segments = []; for(var n = 0 ; n < 500 ; n++) { // arbitrary road length segments.push({ index: n, p1: { world: { z: n *segmentLength }, camera: {}, screen: {} }, p2: { world: { z: (n+1)*segmentLength }, camera: {}, screen: {} }, color: Math.floor(n/rumbleLength)%2 ? COLORS.DARK : COLORS.LIGHT }); } A primeira vista entendi que ele está adicionando valores ao array segments com o método push. Mas, os valores colocados, não fazem sentido para mim. É como se fosse criada uma classe dinamicamente (que contenha as variáveis:, index, p1, p2...) sem precisar declará-la. Seria basicamente isso? Ele criou um objeto que representa uma classe, mas sem nomeá-la, ou algo semelhante?
  10. Bom dia, estou a tentar fazer um exercício para, dado um ficheiro .txt na directoria do programa, terei de encontrar todas as palavras que são palíndromos. Tendo este código para ler as palavras do ficheiro .txt (letra a letra) para uma matrix. Estando as palavras armazenadas numa matrix, como faço essa validação? Obg, #include <stdio.h> #include <stdlib.h> int main(int argc, char const *argv[]) { FILE* inp; inp = fopen("palindromo.txt","r"); char arr[100][50]; int i = 0; while(1){ char r = (char)fgetc(inp); int k = 0; while(r!=',' && !feof(inp)){ //Le ate fim de ficheiro arr[i][k++] = r; //armazena no array r = (char)fgetc(inp); } arr[i][k]=0; //ultimo carater nulo //Alguma parte aqui, valida se a palavra e PALINDROMO. //COMO?? if(feof(inp)){ //valida EOF break; } i++; } int j; for(j = 0;j<=i;j++){ printf("%s\n",arr[j] ); //Imprime array } return 0; }
  11. Não consigo apresentar as palavras equivalentes conseguem me ajudar??? O código é o seguinte: #include <stdio.h> char equivale(int ddd){ switch(ddd){ case 61: return "Brasilia"; break; case 71: return "Salvador"; break; case 11: return "Sao Palo"; break; case 21: return "Rio de Janeiro"; break; case 32: return "Juiz de Fora"; break; case 19: return "Campinas"; break; case 27: return "Vitoria"; break; case 31: return "Belo Horizonte"; break; } } int main(){ int ddd; scanf("%d",&ddd); equivale(ddd); printf("%d",equivale(ddd)); }
  12. Numa cidade as crianças costumam brincar com um jogo (de dois jogadores) onde: um jogador A define uma sequência de 10 letras usando: G, R e B (exemplo: G – G – G – R – B – R – B – B – B – R) um jogador B pode ler a sequência quantas vezes quiser o jogador B também pode dizer uma das letras e obter em quais posições a letra dada se encontra na sequência o jogador B também pode dar uma posição e saber qual letra ocupa a posição na sequência para finalizar, o jogador B deve dizer a sequência de letras, obtendo um ponto para cada acerto. Só consegui pensar nisso por enquanto. //identificar que letra ocupa esta posição na sequência: do{ scanf(“%d”,&Posicao); Posicao=Posicao-1;} while ((Posicao<0)||(Posicao>9)); printf(“%c”,Sequencia[Posicao]); //exibir sequencia for (Cont=0; Cont<=9; Cont++) printf(“%c”,Sequencia[Cont]); //exibir posições for (Cont=0; Cont<=9; Cont++) printf(“%d%c”,Cont+1,Sequencia[Cont]);
  13. Olá, pessoal, Mexo com microcontroladores, antigamente com PIC e agora com ARM (plataforma LPCXpresso). Ambos utilizam a linguagem C. Meu problema é o seguinte: Preciso converter um caractere que vem da UART (porta de comunicação). No PIC havia uma função pronta para tal, no ARM não. O caractere chega assim, por exemplo: P123 (tudo junto), e eu queria separar em: dado_recebido[]={'P', '1', '2', '3'}; Para poder utilizar um switch switch(dado_recebido[0]) { case 'P':.... } alguém tem alguma ideia de como posso fazer a conversão? Agradeço desde já.
  14. Caioba

    Erro ao resolver problema em c

    Salve! Estou com problemas ao solucionar uma questão que me foi proposta na linguagem C. Já desenvolvi todo o código, mas os casos de teste não batem. Questão: A agência cearense para investigações criminais denominada OBI (Operação de Baita Investigação) notou que, a exemplo do que ocorreu na Petrobrás, muito dinheiro foi desviado dos cofres públicos do estado para pagamento de propina a políticos nos últimos anos, especialmente pelo partido QU (Quadrilha Unida). A investigação está em andamento e a agência recrutou você para converter alguns valores que ficaram com caracteres estranhos após terem sidos descriptografados dos arquivos originais. Sua tarefa neste caso é relativamente simples: basta retirar todos os caracteres estranhos (não numéricos) de cada um dos dois valores disponíveis. Apenas tome o cuidado de separar os primeiros 11 dígitos do primeiro valor. Eles correspondem ao CPF do corrupto :) Entrada: A entrada é composta por duas linhas, cada uma delas contendo entre 1 e 60 caracteres ('0'-'9' e outros caracteres não numéricos ou, pelo menos, 1 caracter '0'-'9') e no máximo um ponto ".". Desconsiderando os caracteres não numéricos, o número final não deve ter mais de 17 caracteres (incluindo o ponto decimal). Exemplo de entrada: 7a5a6adfg4a4adsfgsd9fg6aa904aa91#$%1 42**&7746.67abc$ Saída: Imprima o CPF do corrupto e o valor que foram desviados dos cofres públicos. Exemplo de saída cpf 75644969049 propina 11427746.67 Meu código abaixo: #include<stdio.h> #include<string.h> int main(){ char caract[60]; char caract2[60]; char cpf[10]; char propina[15]; int i=0, j=0; scanf("%s", caract); for(i = 0; caract[i] != '\0'; i++){ if(caract[i] >= 48 && caract[i] <= 57){ if(j<11){ cpf[j] = caract[i]; } j++; } } cpf[11] = '\0'; cpf[12] = '\0'; scanf("%s", caract2); for(i = 0; caract2[i] != '\0'; i++){ if((caract2[i] >= 48 && caract2[i] <= 57) || caract2[i] == 46){ propina[j] = caract2[i]; j++; } } cpf[10] = '\0'; printf("cpf %s", cpf); printf("propina %s", propina); }
  15. TutoDS

    Via Verde em C

    Boa tarde pessoal. Sou novo a programar em C, programo diariamente em PHP e já programei em C#. Porém agora tenho que fazer um projeto para a minha Licenciatura em C, um programa estilo Via Verde. Mas estou com dificuldades, pois o meu pensamento está mais virado para Base de Dados. Se alguém me puder tirar as seguintes dúvidas agradeço: Como recomendam estruturar os ficheiros para guardar os dados do cliente, os veículos e as viagens? Como posso fazer a pesquisa num ficheiro, por exemplo inserir 123456789 e aparecer me os dados do cliente com esse NIF? Obrigado
  16. Pessoal, estou com dificuldades na solução deste problema: Seja um número N natural maior ou igual a 1. Fazer um algoritmo que calculo S = 1 + 1/2+ 1/3 + 1/4 + ... + 1/N. Meu código está assim: #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { int i, n; float soma; print("Entre com n: "); scanf("%d", &n); soma = 0; { for (i=1; i<=&n; i++) soma = soma + (1/i); } printf("\n O somatorio das fracoes eh: %f", soma); } Alguém pode me dizer por que não funcionando? O que deve mudar ou o que falta inserir? Solução: https://forum.imasters.com.br/topic/316721-resolvido soma-com-fração/
  17. boa noite pessoal, eu sou estudante de ADS , e sou novo na programacao, estou desenvolvendo um sistema para um trabalho final do curso, um sistema de controle de entrada e saida de usuarios, mas nele esta acontecendo um erro, quando eu digito um numero de uma cadeira que ja esta comprada ele aceita, estou vendo e revendo o codigo mas nao vejo erro. alguem pode apontar o meu erro? obrigado, segue o codigo: #include <stdio.h> #include <time.h> #include <stdlib.h> #define linha 11 #define coluna 11 #define valor_minimo 29 #define valor_maximo 121 int valida(int num, int *ant, int cont); void edita (int sort,int cont); void chamaSorteio(); void CadeiraNum();//declara a funcao que preenche os lugares com numeros void painel();//declara a funcao que mostra a matriz void compra();//declara a funcao que faz a compra dos lugares void cad(); int resp; int matriz[linha][coluna];// FILE *ponteiroArquivo; struct cadastro{ char nome [50]; char cpf [15]; char email [30]; }; struct cadastro aux; int main(){ int opcao=0; int contador=0,lugares=92; char nomes[30]; char timeStr[9]; struct tm *data_hora_atual; time_t segundos; time(&segundos); data_hora_atual = localtime(&segundos); CadeiraNum(matriz);//aqui complementa a funcao cadeiraNum(); colocando os numeros. do{ //a partir daqui e mostrado para o usuario as opcoes do programa principal system("cls"); printf("\n\n MENU \n\n"); printf(" 1- Reservar Cadeira (Ainda restam (%d) lugares)\n",lugares-contador); printf(" 2- Mostrar Painel de lugares\n"); printf(" 3- Sorteio\n"); printf(" 4- SAIR \n"); printf(" opcao: "); scanf("%d",&opcao); switch(opcao){ case 1: system("cls"); //cad(); // getch(); system("cls"); painel(matriz);//antes de escolher o lugar antes e chamado a matriz e o usuario pode ver o painel, inclusive com os lugares do teatro comprados atualizados. texto: printf("\n\nDigite o numero da cadeira desejada: \n"); scanf("%d",&resp); if ((resp<=0) || (resp>=122)){ printf("Esta cadeira não existe!!!Escolha outra!\n"); goto texto; getch(); }else if ((resp>=1) && (resp<=22)){ printf("Esta cadeira ja esta reservada!!!Escolha outra!\n"); goto texto; getch(); } else if ((resp>=23) && (resp<=28)){ printf("Esta cadeira é preferencial!!!Escolha outra!\n"); goto texto; getch(); }else if (matriz[linha][coluna]==0){ printf("Esta cadeira esta ocupada!!! Escolha outra!\n"); goto texto; getch(); } else (printf(" \n")); ponteiroArquivo=fopen("arquivo.txt","r"); fgets(nomes,30,ponteiroArquivo); fclose(ponteiroArquivo); system("cls"); _strtime( timeStr ); printf_s( "\tParabens %s pela sua compra no dia %d/%d/%d as %s \n\nSeu ticket sera enviado por e-mail!!\n",aux.nome, data_hora_atual->tm_mday,data_hora_atual->tm_mon+1,data_hora_atual->tm_year+1900,timeStr); printf("seu assento e %d\n",resp); contador++; system("pause"); break; case 2: system("cls"); system("cls"); painel(matriz);//chama a funcao painel que contem a matriz printf("\n\n"); system("pause"); break; case 3: system("cls"); chamaSorteio(); system("pause"); break; //o usuario escolhendo este caso o programa retorna nada e fecha case 4: return 0; break; default: printf("OPCAO INVALIDA!!!\n"); system("pause"); break; } }while(1==1); system("pause"); return(0); } //esta e a funcao responsavel por preencher todos os lugares do teatro com numeros! void CadeiraNum(){ int c,l; int num; num=1; for(l=1;l<=linha;l++) for(c=1;c<=coluna;c++){ matriz[l][c]=num; num++; } matriz[3][1]=333; matriz[3][2]=333; matriz[3][3]=333; matriz[3][4]=333; matriz[3][5]=333; matriz[3][6]=333; /**/ matriz[1][1]=222; matriz[1][2]=222; matriz[1][3]=222; matriz[1][4]=222; matriz[1][5]=222; matriz[1][6]=222; matriz[1][7]=222; matriz[1][8]=222; matriz[1][9]=222; matriz[1][10]=222; matriz[1][11]=222; /**/ matriz[2][1]=222; matriz[2][2]=222; matriz[2][3]=222; matriz[2][4]=222; matriz[2][5]=222; matriz[2][6]=222; matriz[2][7]=222; matriz[2][8]=222; matriz[2][9]=222; matriz[2][10]=222; matriz[2][11]=222; } //esta e a funcao que cria as linhas e as colunas do teatro matriz void painel(){ int c,l; printf("\n PAINEL DE OCUPACOES \n\n"); printf(" "); for(c=1;c<=coluna;c++) printf("\t%d",c); for(l=1;l<=linha;l++){ printf("\n\n\t%d",l); for(c=1;c<=coluna;c++) if(matriz[l][c]==222){ printf("\t(R)"); }else if(matriz[l][c]==resp){ matriz[l][c]=0; printf("\t(C)"); }else if(matriz[l][c]==0){ printf("\t(c)"); } else if(matriz[l][c]==333){ printf("\t(P)"); } else printf("\t(%d)",matriz[l][c]); } printf("\n\n\t(29-121) - LUGAR LIVRE (p) - Assento preferencial (C) - CADEIRA JA COMPRADA (R) CADEIRA RESERVADA\n"); } //funcao que marca no lugar escolhido o valor 0 guardando o lugar /*void compra(int l, int c){ if(resp==matriz[linha][linha]){ matriz[linha][coluna] = 0; } } */ void cad(){ ponteiroArquivo=(fopen("arquivo.txt","a")); // "a" - cria um arquivo novo, ou modifica um ja existente. getchar(); printf("\t\tSEJA BEM VINDO AO TEATRO DA UNIP!!\n\n"); printf("Antes de comprar a cadeira vamos fazer um breve cadastro........\n\npresssione ENTER para continuar......\n\n\n"); getch(); printf("Digite seu nome: "); fgets (aux.nome, 50 ,stdin); getchar(); printf("Digite seu CPF: "); fgets (aux.cpf, 15 ,stdin); getchar(); printf("Digite seu Email: "); fgets (aux.email , 30 ,stdin); //gravando com fprintf no arquivo printf("\n"); fprintf(ponteiroArquivo, "\n------------------------\n"); fprintf(ponteiroArquivo,"nome: %s\n",aux.nome); fprintf(ponteiroArquivo,"CPF: %s\n",aux.cpf); fprintf(ponteiroArquivo,"Email: %s\n",aux.email); fclose(ponteiroArquivo);//fecha o arquivo } void chamaSorteio(){ int i; int sorteados[4]; srand(time(NULL)); printf("---------|SORTEIO\n\n"); for(i=0;i<4;i++){ sorteados = valor_minimo+rand()%(valor_maximo-valor_minimo); if(i==0){ edita(sorteados,i); } else { sorteados = valida(sorteados,sorteados,i); edita(sorteados,i); } } printf("------------------------------------------"); getch(); printf("\nParabens a todos os premiados!!\n\n"); getch(); } int valida(int num, int *ant, int cont){ int aux; for(aux=0;aux<cont;aux++){ while(num==*(ant+aux)){ num=valor_minimo+rand()%(valor_maximo-valor_minimo); } } return num; } void edita (int sort,int cont){ printf("\t%d°premiado usuario da caderia : %.2d\n",cont+1,sort); }
  18. Alguem tem um programa em C que faça isso ou me de uma luz consegui fazer do infixa para posfixa mais nao consegui o contrario.
  19. Boa noite pessoal, estou a mais de 3 semanas com um trabalho e está impossivel resolver. Segue a questão // Escreva um programa que leia 4 arquivos de numeros inteiros, calcule a média. //Mostre o maior quadrado que seja menor que a média de todos os números maiores que a média dos números de cada um dos arquivos. //Ex: Média dos números do arquivo 01 = 35 //Números do arquivo 01 que são maiores que 35 = Ni...Nn //Maior quadrado entre os N números do arquivo 01 = x. A baixo vou colocar 2 tentativas que não saem da parte de calcular a media, como posso calcular a segunda parte?? TENTATIVA 01 #include <stdio.h> #include <stdlib.h> main(){ FILE *numeros, *maior, *menor, *medio; int numero; float media; //abertura dos arquivos numeros = fopen ("numeros.txt", "r"); maior = fopen ("maior.txt", "w" ); medio = fopen ("medio.txt" , "w"); menor = fopen ("menor.txt" , "w"); //leitura dos dados e gravação do arquivo while (fscanf (numeros , "%i %f" , &numero , &media)!= EOF){ if (media >= 6) fprintf (maior,"%i %4.1f\n",numero,media); else fprintf (medio,"%i %4.1f\n",numero,media); } //fechando os arquivos fclose (numeros); fclose (maior); fclose (medio); fclose (menor); } TENTATIVA 02 (ACHO QUE A MELHOR) #include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdlib.h> #define TAM_MED 50 //tamanho na média #define M 4 //número de arquivos #define TRUE 1 #define FALSE 0 int leitura( int id, int medi){ int id_num, id_num2, id_num3, id_num4; int med; FILE* numeros = fopen ("numeros.txt","r"); FILE* numeros2 = fopen ("numeros2.txt", "r"); FILE* numeros3 = fopen ("numeros3.txt", "r"); FILE* numeros4 = fopen ("numeros4.txt", "r"); if (numeros != NULL){ while (fscanf(numeros, "%d\n", &id_num, med) != EOF){ //End of file printf("%d\n", id_num, med); } if (numeros != NULL){ while (fscanf(numeros2,"%d\n", &id_num2,med) != EOF){ //End of file printf("%d\n", id_num2,med); } if (numeros != NULL){ while (fscanf(numeros3,"%d\n", &id_num3,med) != EOF){ //End of file printf("%d\n", id_num3,med); } if (numeros != NULL){ while (fscanf(numeros4,"%d\n", &id_num4,med) != EOF){ //End of file printf("%d\n", id_num4,med); } } fclose (numeros); fclose (numeros2); fclose (numeros3); fclose (numeros4); return 0; } } } } int main(){ int id_num, id_num2, id_num3, id_num4; printf("Digite o primeiro numero: %d"); scanf("%d", &id_num); printf("Digite o segundo numero: %d"); scanf("%d", &id_num2); printf("Digite o terceiro numero: %d"); scanf("%d", &id_num3); printf("Digite o quarto numero: %d"); scanf("%d", &id_num4); printf("Media: %f", (float) (id_num + id_num2+ id_num3+ id_num4)/4); return 0; }
  20. #include<stdio.h> #include<string.h> #include<stdlib.h> struct aluno { char nome[20]; char endereco[50]; char data_de_nascimento[10]; char telefone[15]; float nota1; float nota2; }; struct aluno recadastramento(struct aluno valuno[10]); void media_das_notas(struct aluno valuno[10]); void aprovado_ou_reprovado(struct aluno valuno[10]); void mostrar_informacoes(struct aluno valuno[10]); int main(void) { struct aluno valuno[10]; int op; float media; int i; int j; printf("Digite as informacoes dos alunos"); for(i=1;i<11;i++) { printf("Digite O Nome Do Aluno[%d]\n\n",i); printf("Nome: "); fflush(stdin); gets(valuno[i].nome); printf("\nDigite O Endereco Do Aluno[%d]\n\n",i); printf("Endereco: "); fflush(stdin); gets(valuno[i].endereco); printf("\nDigite A Data De Nascimento Do Aluno [%d] No Formato <00/00/0000>\n\n",i); printf("Data De Nascimento: "); fflush(stdin); gets(valuno[i].data_de_nascimento); for(j=0;j <15; j++) { if(valuno[i].data_de_nascimento[2] != '/' && valuno[i].data_de_nascimento[5] != '/') { printf("ERRO! Digite novamente"); printf("\nDigite A Data De Nascimento Do Aluno [%d] No Formato <00/00/0000>\n\n",i); gets(valuno[i].data_de_nascimento); break; } else { printf("FORMATO CORRETO"); break; } } printf("\nDigite O Telefone Do Aluno [%d] No Formato <(DDD)00000-0000>\n\n",i); printf("Telefone Do Aluno: "); fflush(stdin); gets(valuno[i].telefone); for(j=0;j <15; j++) { if(valuno[i].telefone[0] != '(' && valuno[i].telefone[4] != ')' && valuno[i].telefone[10] != '-') { printf("ERRO! Digite novamente"); printf("Digite O Telefone Do Aluno [%d]: ",i); gets(valuno[i].telefone); break; } else { printf("FORMATO CORRETO"); break; } } printf("\nDigite A Primeira Nota Do Aluno [%d]\n\n",i); printf("Nota 1: "); scanf("%f",&valuno[i].nota1); printf("\nDigite A Segunda Nota Do Aluno [%d]\n\n",i); printf("Nota 2: "); scanf("%f",&valuno[i].nota2); } do { printf("\nMENU\n"); printf("- 1)Editar informações dos alunos \n 2)Mostrar as medias dos alunos \n 3)Dizer se os alunos foram aprovados medias >= 6 ou reprovados (medias <6)\n 4)Listar todas as informações dos alunos"); printf("\n\nOpcao::: "); scanf("%d",&op); switch(op) { case 1: recadastramento(valuno); break; case 2: media_das_notas(valuno); break; case 3: aprovado_ou_reprovado(valuno); break; case 4: mostrar_informacoes(valuno); break; default: printf("\nOpcao INVALIDA\n"); break; } }while(op > 0 && op < 5); } struct aluno recadastramento(struct aluno valuno[10]) //recadastramento de informações//Funções { int i; for(i=1;i<11;i++) { printf("\nDigite O Nome Do Aluno [%d]\n\n",i); printf("Nome: "); fflush(stdin); gets(valuno[i].nome); printf("\nDigite O Endereco Do Aluno [%d]\n\n",i); printf("Endereco: "); fflush(stdin); gets(valuno[i].endereco); printf("\nDigite A Data De Nascimento Do Aluno [%d] No Formato <00/00/0000>\n\n",i); printf("Data De Nascimento: "); fflush(stdin); gets(valuno[i].data_de_nascimento); int j; for(j=0;j < 11; j++) { if(valuno[i].data_de_nascimento[2] != '/' && valuno[i].data_de_nascimento[5] != '/')//validção de data no formato correto { printf("ERRO! Digite novamente"); printf("\nDigite A Data De Nascimento Do Aluno [%d]No Formato <00/00/0000>\n\n",i); gets(valuno[i].data_de_nascimento); break; } else { printf("FORMATO CORRETO"); break; } } printf("\nDigite O Telefone Do Aluno [%d] No Formato <(DDD)00000-0000>\n\n",i); printf("Telefone Do Aluno: "); fflush(stdin); gets(valuno[i].telefone); for(j=0;j <15; j++)//validção de numero no formato correto { if(valuno[i].telefone[0] != '(' && valuno[i].telefone[4] != ')' && valuno[i].telefone[10] != '-') { printf("ERRO! Digite novamente"); printf("Digite O Telefone Do Aluno [i]: ",i); gets(valuno[i].telefone); break; } else { printf("FORMATO CORRETO"); break; } } printf("\nDigite A Primeira Nota Do Aluno [%d]\n\n",i); printf("Nota 1: "); scanf("%f",&valuno[i].nota1); printf("\nDigite A Segunda Nota Do Aluno [%d]\n\n",i); printf("Nota 2: "); scanf("%f",&valuno[i].nota2); } } void media_das_notas(struct aluno valuno[10])//media de notas { int i; for(i=1;i<11;i++) { float media; media = (valuno[i].nota1 + valuno[i].nota2) / 2; printf("Media: %.2f\n",media); } } void aprovado_ou_reprovado(struct aluno valuno[10])//se foi aprovado ou reprovado { int i; for(i=1;i<11;i++) { float media; media = (valuno[i].nota1 + valuno[i].nota2) / 2; if(media >= 6) { printf("\nAluno [%d] APROVADO\n",i); } else { printf("\nAluno [%d] REPROVADO\n",i); } printf("\nMedia do Aluno[%d]: %.2f\n",i,media); } } void mostrar_informacoes(struct aluno valuno[10])//mostrando informções de cadastro { int i; for(i=1;i<11;i++) { printf("-Listagem Do Aluno[%d]",i); printf("\n\nNome do Aluno[%d]: %s",i,valuno[i].nome); printf("\nEndereco do Aluno[%d]: %s",i,valuno[i].endereco); printf("\nData De Nascimento do Aluno[%d]: %s",i,valuno[i].data_de_nascimento); printf("\nTelefone do Aluno[%d]: %s",i,valuno[i].telefone); printf("\nNota 1 do Aluno[%d]: %.2f ",i,valuno[i].nota1); printf("\nNota 2 do Aluno[%d]: %.2f ",i,valuno[i].nota2); } } //Fim Do Codigo
  21. Olá pessoal tudo bem? Eu estou fazendo um programa para controle de funcionários em C, e estou com problemas em algumas partes do código.Os dados de cadastramento de funcionário e departamento não está sendo gravados nos seus respectivos arquivo, e em "cadastrar departamento" depois de digitar o código do departamento que sera criado e apertar enter o programa buga. Segue o código: #include <stdio.h> #include <stdlib.h> #include <ctype.h> #include <string.h> typedef struct{ long int codigo, cod_gerente; char nome[30],sigla[5]; unsigned short int ramal; }TDepartamento; typedef struct{ long int cod_dep, numero; char nome[60],matricula[10],dataNascimento[11],cpf[12],rua[40],bairro[30], complemento[20],cidade[30],estado[3],telefone[15],email[30]; double salario; }TFuncionario; typedef struct{ long int codfun, coddep; char data[11]; }Thistoricofuncionario; typedef struct{ long int codgerente, coddep; char data[11]; }Thistoricodepartamento; typedef struct{ long int codfun; unsigned short int mes,ano; double salario; }Thistoricosalario; int pesquisaDep(FILE *da, long int *cod){ TDepartamento v; int posicao=0; /*posição no início do arquivo*/ fseek(da,0,SEEK_SET); while(fread(&v,sizeof(TDepartamento),1,da)==1){ if(v.codigo==cod) return posicao; else posicao++; } return -1; } /*retorna a posiço do registro ou -1 se não encontrar*/ int pesquisaFun(FILE *a, char *matricula){ TFuncionario r; int posicao=0; /*posição no início do arquivo*/ fseek(a,0,SEEK_SET); while(fread(&r,sizeof(TFuncionario),1,a)==1){ if(r.matricula==matricula) return posicao; else posicao++; } return -1; } /*Cadastrar um Departamento*/ void cadDep(FILE *da, FILE *a){ int sair,p; long int cod,codger; unsigned short int ch; TDepartamento vd; do{ printf("\n******************************************************\n"); printf("\n* Cadastramento de Departamento *\n"); printf("\n******************************************************\n"); printf("\nCódigo do Departamento:"); scanf("%li",&cod); if(pesquisaDep(da,cod)==-1){ strcpy(vd.codigo,cod); setbuf(stdin,NULL); printf("\nNome do departamento:"); fgets(vd.nome,30,stdin); setbuf(stdin,NULL); if((strlen(vd.nome)==0) || (strcmp(vd.nome,"0")==0)){ printf("\nO campo nome não pode estar vazio!Digite novamente:"); fgets(vd.nome,30,stdin); } printf("\nSigla do Departamanto:"); fgets(vd.sigla,5,stdin); setbuf(stdin,NULL); printf("\nCodigo do funcionario que será gerente do departamento:"); scanf("%li",codger); if(pesquisaFun(a,codger)==-1) strcpy(vd.cod_gerente,codger); else printf("\nMatricula de funcionario inexistente!!!"); printf("\nRamal:"); fflush(stdin); scanf("%d",&ch); if(isdigit(ch)){ strcpy(vd.ramal,ch); } else{ printf("voce não digitou um numero!!!\n\n"); scanf("%d",&ch); } /*posicionando no final do arquivo*/ fseek(da,0,SEEK_END); fwrite(&vd,sizeof(TDepartamento),1,da); } else printf("\nDepartamento já existe!!!!"); printf("\n\nDeseja sair do cadastro? 1-Sim 2-Não "); scanf("%d",&sair); }while(sair!=1); } /*Validar o CPF do funcionario*/ int validarCPF(char cpf[]){ int i, j, digito1 = 0, digito2 = 0; if(strlen(cpf) != 11) return 0; else if((strcmp(cpf,"00000000000") == 0) || (strcmp(cpf,"11111111111") == 0) || (strcmp(cpf,"22222222222") == 0) || (strcmp(cpf,"33333333333") == 0) || (strcmp(cpf,"44444444444") == 0) || (strcmp(cpf,"55555555555") == 0) || (strcmp(cpf,"66666666666") == 0) || (strcmp(cpf,"77777777777") == 0) || (strcmp(cpf,"88888888888") == 0) || (strcmp(cpf,"99999999999") == 0)) return 0; /*se o CPF tiver todos os números iguais ele é inválido.*/ else{ /*digito 1---------------------------------------------------*/ for(i = 0, j = 10; i < strlen(cpf)-2; i++, j--) /*multiplica os números de 10 a 2 e soma os resultados dentro de digito1*/ digito1 += (cpf[i]-48) * j; digito1 %= 11; if(digito1 < 2) digito1 = 0; else digito1 = 11 - digito1; if((cpf[9]-48) != digito1) return 0; /*se o digito 1 não for o mesmo que o da validação CPF é inválido*/ else{ /*digito 2--------------------------------------------------*/ for(i = 0, j = 11; i < strlen(cpf)-1; i++, j--) /*multiplica os números de 11 a 2 e soma os resultados dentro de digito2*/ digito2 += (cpf[i]-48) * j; digito2 %= 11; if(digito2 < 2) digito2 = 0; else digito2 = 11 - digito2; if((cpf[10]-48) != digito2) return 0; /*se o digito 2 não for o mesmo que o da validação CPF é inválido*/ } } return -1; } /*Cadastrar um funcionario*/ void cadFun(FILE *a, FILE *da){ int i,cod,sair,achou,data; char mat[10],cp[11]; TFuncionario vf; TDepartamento vd; do{ printf("\n******************************************************\n"); printf("\n* Cadastramento de Funcionarios *\n"); printf("\n******************************************************\n"); printf("\nForneça a matricula:"); fgets(mat,10,stdin); if(pesquisaFun(a,mat)==-1){ strcpy(vf.matricula,mat); setbuf(stdin,NULL); printf("\nNome do Funcionario:"); fgets(vf.nome,60,stdin); setbuf(stdin,NULL); if(vf.nome==NULL){ printf("\nO nome não pode estar vazio!!!"); fgets(vf.nome,60,stdin); setbuf(stdin,NULL); } printf("\nSalario do Funcionario:"); scanf("%lf",&vf.salario); setbuf(stdin,NULL); printf("\nData de nascimento:"); fgets(vf.dataNascimento,11,stdin); setbuf(stdin,NULL); printf("\nCPF:"); fgets(cp,12,stdin); setbuf(stdin,NULL); if(validarCPF(cp)==-1) strcpy(vf.cpf,cp); else{ printf("\nCPF inválido!Digite-o novamente:"); fgets(cp,12,stdin); setbuf(stdin,NULL); } printf("\n******************************************************\n"); printf("\n* Endereço *\n"); printf("\n******************************************************\n"); printf("\nRua:"); fgets(vf.rua,40,stdin); setbuf(stdin,NULL); printf("\nBairro:"); fgets(vf.bairro,30,stdin); setbuf(stdin,NULL); printf("\nNúmero:"); scanf("%li",&vf.numero); setbuf(stdin,NULL); printf("\nComplemento:"); fgets(vf.complemento,20,stdin); setbuf(stdin,NULL); printf("\nCidade:"); fgets(vf.cidade,30,stdin); setbuf(stdin,NULL); printf("\nEstado:"); fgets(vf.estado,3,stdin); setbuf(stdin,NULL); printf("\n******************************************************\n"); printf("\n* Informações de contato *\n"); printf("\n******************************************************\n"); printf("\nTelefone:"); fgets(vf.telefone,15,stdin); setbuf(stdin,NULL); printf("\nE-mail:"); fgets(vf.email,30,stdin); setbuf(stdin,NULL); printf("\nForneça o Código do departamento:"); scanf("%d",&cod); if(pesquisaDep(da,cod)==-1) strcpy(vf.cod_dep,cod); else printf("\nDepartamento inexistente!!!"); /*posicionando no final do arquivo*/ fseek(a,0,SEEK_END); fwrite(&vf,sizeof(TFuncionario),1,a); } else printf("\nMatricula de funcionario repetida!!!!"); printf("\n\nDeseja sair do cadastro? 1-Sim 2-Não "); scanf("%d",&sair); }while(sair!=1); } /*Consultar um funcionario cadastrado*/ void consFun(FILE *a, FILE *da){ int sair,p; TFuncionario rf; do{ printf("\nForneça a matricula:"); fgets(rf.matricula,10,stdin); if(pesquisaFun(a,rf.matricula)==-1){ /*posicionando no final do arquivo*/ fseek(a,sizeof(TFuncionario)*p,SEEK_SET); fread(&rf,sizeof(TFuncionario),1,a); printf("\n******************************************************\n"); printf("\n* Dados do Funcionario *\n"); printf("\n******************************************************\n"); printf("\nMatricula: %s",&rf.matricula); printf("\nNome: %s",&rf.nome); printf("\nSalario: %.2f",&rf.salario); printf("\nData de nascimento: %s",&rf.dataNascimento); printf("\nCPF: %s",&rf.cpf); printf("\nRua: %s",&rf.rua); printf("\nBairro: %s",&rf.bairro); printf("\nNúmero: %li",&rf.numero); printf("\nComplemento: %s",&rf.complemento); printf("\nCidade: %s",&rf.cidade); printf("\nEstado: %s",&rf.estado); printf("\nTelefone: %s",&rf.telefone); printf("\nE-mail: %s",&rf.email); } else printf("\nMatriclua inexistente!!!"); printf("\n\nDeseja sair da consulta? 1-Sim 2-Não "); scanf("%d",&sair); }while(sair!=1); } /*Alterar os dados de um funcionario e atualizar o arquivo histfun*/ void alteracaoFun(FILE *a,FILE *da, FILE *hist){ int cod,sair,achou,data,p; char cp[11]; TFuncionario rf; TDepartamento rd; do{ printf("\n******************************************************\n"); printf("\n* Alteração de Dados do Funcionarios *\n"); printf("\n******************************************************\n"); printf("\nForneça a matricula:"); fgets(rf.matricula,10,stdin); p=pesquisaFun(a,rf.matricula); if(p==-1){ setbuf(stdin,NULL); printf("\nNome do Funcionario:"); fgets(rf.nome,60,stdin); if(rf.nome==NULL){ printf("\nO nome não pode estar vazio!!!"); fgets(rf.nome,60,stdin); } setbuf(stdin,NULL); printf("\nData de nascimento:"); fgets(rf.dataNascimento,11,stdin); setbuf(stdin,NULL); printf("\nCPF:"); fgets(cp,12,stdin); if(validarCPF(cp)==1) strcmp(rf.cpf,cp); else{ printf("\nCPF inválido!Digite-o novamente:"); fgets(cp,12,stdin); } setbuf(stdin,NULL); printf("\n******************************************************\n"); printf("\n* Endereço *\n"); printf("\n******************************************************\n"); printf("\nRua:"); fgets(rf.rua,40,stdin); setbuf(stdin,NULL); printf("\nBairro:"); fgets(rf.bairro,30,stdin); setbuf(stdin,NULL); printf("\nNúmero:"); scanf("%li",&rf.numero); setbuf(stdin,NULL); printf("\nComplemento:"); fgets(rf.complemento,20,stdin); setbuf(stdin,NULL); printf("\nCidade:"); fgets(rf.cidade,30,stdin); setbuf(stdin,NULL); printf("\nEstado:"); fgets(rf.estado,3,stdin); setbuf(stdin,NULL); printf("\n******************************************************\n"); printf("\n* Informações de contato *\n"); printf("\n******************************************************\n"); printf("\nTelefone:"); fgets(rf.telefone,15,stdin); setbuf(stdin,NULL); printf("\nE-mail:"); fgets(rf.email,30,stdin); setbuf(stdin,NULL); /*posicionando no final do arquivo*/ fseek(a,sizeof(TFuncionario)*p,SEEK_SET); fwrite(&rf,sizeof(TFuncionario),1,a); } else printf("\nMatriclua inexistente!!!"); printf("\n\nDeseja sair da alteração? 1-Sim 2-Não "); scanf("%d",&sair); }while(sair!=1); } /*Alterar o departamento do funcionario e atualizar o arquivo histdep*/ void alteracaoFunDep(FILE *a,FILE *da, FILE *hist){ int sair,p,cod,achou; TFuncionario rf; TDepartamento rd; do{ printf("\nForneça a matricula do funcionario:"); fgets(rf.matricula,10,stdin); p=pesquisaFun(a,rf.matricula); if(p==-1){ do{ setbuf(stdin,NULL); printf("\nForneça o novo departamento do funcionario:"); fgets(rf.cod_dep,60,stdin); setbuf(stdin,NULL); achou=0; if(pesquisaDep(da,rd.codigo)==1) printf("\nDepartamento não cadastrado!!!"); else achou=1; }while(achou==0); strcpy(rf.cod_dep,cod); /*posicionando no final do arquivo*/ fseek(a,sizeof(TFuncionario)*p,SEEK_SET); fwrite(&rf,sizeof(TFuncionario),1,a); } else printf("\nMatriclua inexistente!!!"); printf("\n\nDeseja sair da alteração? 1-Sim 2-Não "); scanf("%d",&sair); }while(sair!=1); } /*Alterar o salario do funcionario*/ void alteracaoSalarioFun(FILE *a,FILE *hist){ int sair,p,cod,achou; TFuncionario rf; TDepartamento rd; do{ printf("\nForneça a matricula do funcionario:"); fgets(rf.matricula,10,stdin); p=pesquisaFun(a,rf.matricula); if(p==-1){ setbuf(stdin,NULL); printf("\nForneça o novo salario do funcionario:"); scanf("%lf",&rf.salario); setbuf(stdin,NULL); /*posicionando no final do arquivo*/ fseek(a,sizeof(TFuncionario)*p,SEEK_SET); fwrite(&rf,sizeof(TFuncionario),1,a); } else printf("\nMatriclua inexistente!!!"); printf("\n\nDeseja sair da alteração? 1-Sim 2-Não "); scanf("%d",&sair); }while(sair!=1); } /*Alterar o salario do funcionario e atualizar o arquivo histsal*/ void alteracaoGerenteDep(FILE *da,FILE *a, FILE *hist){ int sair,p,cod,achou; TFuncionario rf; TDepartamento rd; do{ printf("\nForneça o codigo do departamento:"); scanf("%li",&rd.codigo); p=pesquisaDep(da,rd.codigo); if(p==-1){ setbuf(stdin,NULL); printf("\nForneça a matricula do novo gerente do departamento:"); scanf("%li",&rd.cod_gerente); setbuf(stdin,NULL); /*posicionando no final do arquivo*/ fseek(a,sizeof(TFuncionario)*p,SEEK_SET); fwrite(&rf,sizeof(TFuncionario),1,a); } else printf("\nMatriclua inexistente!!!"); printf("\n\nDeseja sair da alteração? 1-Sim 2-Não "); scanf("%d",&sair); }while(sair!=1); } int main(){ FILE *func; FILE *dep; FILE *histfun; FILE *histdep; FILE*histsal; int opcao; func = fopen("funcionario.dat","rb+"); dep = fopen("departamento.dat","rb+"); histfun = fopen("histfun.dat","rb+"); histdep = fopen("histdep.dat","rb+"); histsal = fopen("histsal.dat","rb+"); if (dep==NULL) dep=fopen("departamento.dat","wb+"); if (dep==NULL){ printf("\nErro na abertura do arquivo"); } else func=fopen("funcionario.dat","rb+"); if(func==NULL){ func=fopen("funcionario.dat","wb+"); } if(func==NULL){ printf("\nErro na abertura do arquivo"); } else{ histfun=fopen("histfun.dat","rb+"); } if(histfun==NULL){ histfun=fopen("histfun.dat","wb+"); } if(histfun==NULL){ printf("\nErro na abertura do arquivo"); } else{ histdep=fopen("histdep.dat","rb+"); } if(histdep==NULL){ histdep=fopen("histdep.dat","wb+"); } if(histdep==NULL){ printf("\nErro na abetura do arquivo"); } else{ histsal=fopen("histsal.dat","rb+"); } if(histsal==NULL){ histsal=fopen("histsal.dat","wb+"); } if(histsal==NULL){ printf("\nErro na abertura do arquivo"); } else do{ printf("\n******************************************************\n"); printf("\n* Controle de Funcionarios *\n"); printf("\n******************************************************\n"); printf("\n1-Cadastro de Departamentos\n2-Cadastro de Funcionarios"); printf("\n3-Consultar Funcionario"); printf("\n4-Relatorio de Funcionários por Departamento"); printf("\n5-Alterar um funcionario"); printf("\n6-Alterar Departamento de um Funcionario"); printf("\n7-Alterar Gerente de um Departamento"); printf("\n8-Gerar Folha de Pagamento"); printf("\n9-Alterar o salario de um Funcionario"); printf("\n10-Historico de Salario em um periodo"); printf("\n11-Gerentes de um Departamento"); printf("\n12-Fim\nForneça sua opção:"); scanf("%d", &opcao); switch(opcao){ case 1: cadDep(dep,func); break; case 2: cadFun(func, dep); break; case 3: consFun(func,dep); break; case 5: alteracaoFun(func,dep, histfun); break; case 6: alteracaoFunDep(func,dep,histfun); break; case 7: alteracaoGerenteDep(dep,func,histdep); case 9: alteracaoSalarioFun(func,histsal); break; } }while(opcao!=12); fclose(func); fclose(dep); fclose(histfun); fclose(histdep); fclose(histsal); return 0; }
  22. Olá! Tenho que fazer um projeto que é um SGBD em C, e uma das funções é para criar uma tabela da seguinte forma: 1. Criar um tabela a. os tipos de dados para as colunas poderão ser os tipos primitivos em C ( char, int, float e double) e strings b. os valores deverão ser armazenados em arquivo c. na criação da tabela deverá ser solicitado um nome de coluna para ser a chave primária i. a chave primária deverá ser obrigatoriamente do tipo inteiro sem sinal Alguém pode me dar uma dica da lógica dessa função? Por favor, alguém me ajude!!!
  23. igordobrianskyj

    ocultar gerenciador

    pessoal, tenho o seguinte código. a idéia é fazer o gerenciador de tarefas ficar oculto, pelo seu nome da janela, e não pelo processo; pois pelo processo, alguns usuários estão abrindo-o com nomes diferentes de taskmgr.exe. o código minimiza qualquer programa pelo nome definido, porém ao tentar ocultar o gerenciador, não minimiza.. como se o nome do Gerenciador de Tarefas não fosse esse. alguém pode me dizer onde estou errando? ShowWindow(FindWindow(NULL,"Gerenciador de Tarefas"),SW_MINIMIZE);
  24. jtc-carr

    Dúvida sobre vetores

    Não estou a conseguir avançar alguem me ajuda? obrigada joana /****************************************************************************** Considere o seguinte código que gera todos os números de 0000 a 'a' Refaça o programa utilizando vetores com o valor máximo 20000 Remova os duplicados e mostre quantos números foram apresentados O resultado deverá ser 0000 .(...). 1111 Foram mostrados .(...) *******************************************************************************/ #include <stdio.h> int main() { //Listar numeros de 00000 até a int i, j, k, w, h, a = 1; for (i = 0; i <= a; i++) for (j = 0; j <= a; j++) for (k = 0; k <= a; k++) for (w = 0; w <= a; w++) for (h = 0; h <= a; h++) printf ("%d%d%d%d\t", i, j, k, w, h); }
  25. matt.valenzza@gmail.com

    Lista Duplamente Encadeada

    Preciso fazer uma lista duplamente encadeada para ela inserir os números, mostrando eles, localizar em qual posição eles estão e excluir. Eu fiz o código, mas preciso que os números mostrem o número atual, o anterior e o próximo. Que na hora de compilar, que ele mostre o numero anterior, o atual e o próximo em um pequeno menuzinho. Segue o código que eu criei até agora. #include <stdio.h> struct Lista{ int num; struct Lista *prox; struct Lista *ant; }; struct Lista* criarNovoElemento(){ struct Lista *novo = NULL; novo = malloc(sizeof(struct Lista)); printf("Informe o numero..: "); scanf("%i", &(*novo).num); (*novo).prox = NULL; return novo; } inserir (struct Lista **a){ if (*a == NULL){ *a = criarNovoElemento(); } else{ struct Lista *aux; aux = *a; while( (*aux).prox != NULL){ aux = (*aux).prox; } (*aux).prox = criarNovoElemento(); } } mostrar(struct Lista **a){ if (*a == NULL){ printf("\n....Cadastro vazio....\n"); } else{ struct Lista *aux; aux = *a; while( aux != NULL){ printf("\nAtual..: %i", (*aux).num); aux = (*aux).prox; } } printf("\n"); system("pause"); } localizar (struct Lista **a){ if (*a == NULL){ printf("\n....Cadastro vazio....\n"); } else{ int num = 0; int achei = 0; int cont = 0; printf("Informe o numero: "); scanf("%i", &num); struct Lista *aux; aux = *a; while( aux != NULL && achei == 0){ cont += 1; if ((*aux).num == num){ achei = 1; } aux = (*aux).prox; } if (achei == 1){ printf("\n.....Achei na posicao: %i.....\n", cont); } else{ printf("\n.....Nao Achei....\n"); } } printf("\n"); system("pause"); } excluir(struct Lista **a){ if (*a== NULL){ // verificar se existe algum elemento na lista printf("\n....Cadastro vazio....\n"); } else{ struct Lista *aux =*a; a= (**a).prox; free(aux); } printf("\n"); system("pause"); } main (){ struct Lista *inicio = NULL; int opcao = 0; while(opcao != 9){ system ("cls"); printf("\n[1] Inserir Elemento"); printf("\n[2] Mostrar Elemento"); printf("\n[3] Localizar Elemento"); printf("\n[4] Excluir "); printf("\n[9] Finalizar"); printf("\nInforme a opcao: "); scanf("%i", &opcao); switch(opcao){ case 1 : inserir(&inicio); break; case 2 : mostrar(&inicio); break; case 3 : localizar(&inicio); break; case 4 : excluir(&inicio); break; case 9 : printf("Programa finalizado"); } } }
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.