Jump to content
Fórum Script Brasil

Search the Community

Showing results for tags 'c'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Programação & Desenvolvimento
    • ASP
    • PHP
    • .NET
    • Java
    • C, C++
    • Delphi, Kylix
    • Lógica de Programação
    • Mobile
    • Visual Basic
    • Outras Linguagens de Programação
  • WEB
    • HTML, XHTML, CSS
    • Ajax, JavaScript, XML, DOM
    • Editores
  • Arte & Design
    • Corel Draw
    • Fireworks
    • Flash & ActionScript
    • Photoshop
    • Outros Programas de Arte e Design
  • Sistemas Operacionais
    • Microsoft Windows
    • GNU/Linux
    • Outros Sistemas Operacionais
  • Softwares, Hardwares e Redes
    • Microsoft Office
    • Softwares Livres
    • Outros Softwares
    • Hardware
    • Redes
  • Banco de Dados
    • Access
    • MySQL
    • PostgreSQL
    • SQL Server
    • Demais Bancos
  • Segurança e Malwares
    • Segurança
    • Remoção De Malwares
  • Empregos
    • Vagas Efetivas
    • Vagas para Estágios
    • Oportunidades para Freelances
  • Negócios & Oportunidades
    • Classificados & Serviços
    • Eventos
  • Geral
    • Avaliações de Trabalhos
    • Links
    • Outros Assuntos
    • Entretenimento
  • Script Brasil
    • Novidades e Anúncios Script Brasil
    • Mercado Livre / Mercado Sócios
    • Sugestões e Críticas
    • Apresentações

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests

  1. Boa noite a todos. Escrevi um programa em linguagem C, que não está rodando corretamente. Consigo gravar usando a opção 1 , mas quando tento buscar o produto usando a opção 2 imediatamente recebo e mensagem de erro: falha de segmentação. Já li e reli inúmeras vezes mas não consegui corrigir meu código. Alguém sabe onde está o erro? Desde já grato pela atenção. #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> typedef struct{ char nome[40]; int peso; float preço; }Produto; void limparBuffer(void){ char ch; while((ch = getchar()) != '\n' && ch != EOF){ } } Produto* getProdutos(void){ Produto* produtos; int qtd_Produtos; system("clear"); printf("Informe quantos produtos deseja cadastrar: "); scanf("%d", &qtd_Produtos); limparBuffer(); produtos = malloc(sizeof(Produto) * qtd_Produtos); for(int cont = 0; cont < qtd_Produtos; cont++){ system("clear"); printf("Nome do produto: "); fgets((produtos + cont)->nome, 40, stdin); printf("Peso Produto: "); scanf("%d", &(produtos + cont)->peso); printf("Valor Produto: "); scanf("%f", &(produtos + cont)->preço); limparBuffer(); } system("clear"); return produtos; } int buscarProduto(Produto* produtos, const char* nome_Produto){ int encontrado = 0; while(produtos != NULL){ if(strcmp((produtos)->nome, nome_Produto)){ }else{ encontrado = 1; break; } produtos++; } return encontrado; } Produto retornarProduto(Produto* produtos, const char *nomeProduto){ Produto produto; while(produtos != NULL){ if(buscarProduto(produtos, nomeProduto)){ produto = *(produtos); } produtos++; } return produto; } void exibirProduto(Produto* produtos){ char nome_Produto[40]; Produto produto; printf("Digite nome produto procurado: "); fgets(nome_Produto, 40, stdin); system("clear"); if(buscarProduto(produtos, nome_Produto)){ produto = retornarProduto(produtos, nome_Produto); printf("Nome Produto: %s", produto.nome); printf("Peso: %d\n", produto.peso); printf("Valor: %.2f\n", produto.preço); }else{ puts("Produto não encontrado!"); } sleep(5); } int main(int argc, char* argv[]){ Produto *produtos; int escolha = 0; do { system("clear"); printf("Menu Principal\n\n"); printf("(1) - Cadastrar Produtos\n"); printf("(2) - Buscar Produtos\n"); printf("(3) - Encerrar Programa\n\n\n"); printf("?: "); scanf("%i", &escolha); switch (escolha) { case 1: produtos = getProdutos(); break; case 2: exibirProduto(produtos); } } while (escolha != 3); system("clear"); puts("Programa Encerrado!"); sleep(4); return 0; }
  2. Boa Tarde. Preciso de ajuda pra esse código que mostra o tempo de exibição de processos. Porem, ele mostra o Gráfico de um jeito errado. Ao invés dele mostrar o gráfico assim: Gráfico de Gantt: ------------------------ 1: ---XXX 2: -XX 3: X ------------------------ Ele me mostra assim: Gráfico de Gantt: ------------------------ 3: X 2: -XX 1: ---XXX ------------------------ #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct { char nome[20]; int tempo_execucao; int tempo_espera_inicial; int tempo_processamento; int tempo_espera_final; } Processo; void fcfs(Processo* processos, int n) { int tempo_chegada = 0; int tempo_total = 0; printf("Gráfico de Gantt:\n"); printf("------------------------\n"); for (int i = 0; i < n; i++) { printf("%s: ", processos[i].nome); for (int j = 0; j < tempo_chegada; j++) printf("-"); for (int j = 0; j < processos[i].tempo_execucao; j++) printf("X"); printf("\n"); tempo_chegada += processos[i].tempo_execucao; processos[i].tempo_espera_inicial = tempo_chegada - processos[i].tempo_execucao; processos[i].tempo_espera_final = tempo_total - processos[i].tempo_execucao; tempo_total += processos[i].tempo_execucao; processos[i].tempo_processamento = processos[i].tempo_execucao; } printf("\nDados adicionais:\n"); printf("Tempo de espera para iniciar o processo:\n"); for (int i = 0; i < n; i++) { printf(" %s)", processos[i].nome); printf("%d -", processos[i].tempo_espera_inicial);} printf("\nTempo de processamento do processo:\n"); for (int q = 0; q < n; q++){ printf(" %s)", processos[q].nome); printf("%d -", processos[q].tempo_processamento); } printf("\nTempo de espera para finalizar o processo:\n"); for (int e = 0; e < n; e++){ printf(" %s)", processos[e].nome); printf("%d -", 0); } printf("\n"); double tempo_medio_espera_inicial = 0.0; double tempo_medio_espera_final = 0.0; for (int i = 0; i < n; i++) { tempo_medio_espera_inicial += processos[i].tempo_espera_inicial; tempo_medio_espera_final += processos[i].tempo_espera_final; } tempo_medio_espera_inicial /= n; tempo_medio_espera_final /= n; printf("Tempo médio de espera para iniciar cada processo: %.2lf\n", tempo_medio_espera_inicial); printf("Tempo total de processador: %d\n", tempo_total); } void sjf(Processo* processos, int n) { // Ordena os processos pelo tempo de execução (SJF) for (int i = 0; i < n - 1; i++) { int menor_tempo = i; // Índice do processo com menor tempo de execução for (int j = i + 1; j < n; j++) { if (processos[j].tempo_execucao < processos[menor_tempo].tempo_execucao) { menor_tempo = j; } } // Troca os elementos somente no final da iteração Processo temp = processos[i]; processos[i] = processos[menor_tempo]; processos[menor_tempo] = temp; } int tempo_chegada = 0; int tempo_total = 0; printf("Gráfico de Gantt:\n"); printf("------------------------\n"); for (int i = 0; i < n; i++) { printf("%s: ", processos[i].nome); for (int j = 0; j < tempo_chegada; j++) printf("-"); for (int j = 0; j < processos[i].tempo_execucao; j++) printf("X"); printf("\n"); tempo_chegada += processos[i].tempo_execucao; processos[i].tempo_espera_inicial = tempo_chegada - processos[i].tempo_execucao; processos[i].tempo_espera_final = tempo_total - processos[i].tempo_execucao; tempo_total += processos[i].tempo_execucao; processos[i].tempo_processamento = processos[i].tempo_execucao; } printf("\nDados adicionais:\n"); printf("Tempo de espera para iniciar o processo:\n"); for (int i = 0; i < n; i++) { printf(" %s)", processos[i].nome); printf("%d -", processos[i].tempo_espera_inicial);} printf("\nTempo de processamento do processo:\n"); for (int q = 0; q < n; q++){ printf(" %s)", processos[q].nome); printf("%d -", processos[q].tempo_processamento); } printf("\nTempo de espera para finalizar o processo:\n"); for (int e = 0; e < n; e++){ printf(" %s)", processos[e].nome); printf("%d -", 0); } printf("\n"); double tempo_medio_espera_inicial = 0.0; double tempo_medio_espera_final = 0.0; for (int i = 0; i < n; i++) { tempo_medio_espera_inicial += processos[i].tempo_espera_inicial; tempo_medio_espera_final += processos[i].tempo_espera_final; } tempo_medio_espera_inicial /= n; tempo_medio_espera_final /= n; printf("Tempo médio de espera para iniciar cada processo: %.2lf\n", tempo_medio_espera_inicial); printf("Tempo total de processador: %d\n", tempo_total); } void circular(Processo* processos, int n, int quantum) { int* temp_restante = (int*)malloc(n * sizeof(int)); for (int i = 0; i < n; i++) temp_restante[i] = processos[i].tempo_execucao; int tempo_chegada = 0; int tempo_total = 0; // Determinar o comprimento máximo do nome dos processos int max_length = 0; for (int i = 0; i < n; i++) { int length = strlen(processos[i].nome); if (length > max_length) max_length = length; } printf("Gráfico de Gantt:\n"); printf("------------------------\n"); while (1) { int finalizados = 1; for (int i = 0; i < n; i++) { if (temp_restante[i] > 0) { finalizados = 0; if (temp_restante[i] > quantum) { printf("%-*s: ", max_length, processos[i].nome); // Adicionar espaços em branco para alinhar o gráfico de Gantt for (int j = 0; j < tempo_chegada; j++) printf("-"); for (int j = 0; j < quantum; j++) printf("X"); printf("\n"); tempo_chegada += quantum; temp_restante[i] -= quantum; processos[i].tempo_processamento += quantum; } else { printf("%-*s: ", max_length, processos[i].nome); // Adicionar espaços em branco para alinhar o gráfico de Gantt for (int j = 0; j < tempo_chegada; j++) printf("-"); for (int j = 0; j < temp_restante[i]; j++) printf("X"); printf("\n"); tempo_chegada += temp_restante[i]; processos[i].tempo_processamento += temp_restante[i]; temp_restante[i] = 0; } } } if (finalizados) break; } tempo_total = tempo_chegada; printf("\nDados adicionais:\n"); for (int i = 0; i < n; i++) { processos[i].tempo_espera_inicial = processos[i].tempo_espera_inicial - processos[i].tempo_processamento; processos[i].tempo_espera_final = tempo_chegada - processos[i].tempo_processamento; printf("Tempo de espera para iniciar o processo %-*s: %d\n", max_length, processos[i].nome, processos[i].tempo_espera_inicial); printf("Tempo de processamento do processo %-*s: %d\n", max_length, processos[i].nome, processos[i].tempo_processamento); printf("Tempo de espera para finalizar o processo %-*s: %d\n", max_length, processos[i].nome, processos[i].tempo_espera_final); } double tempo_medio_espera_inicial = 0.0; double tempo_medio_espera_final = 0.0; for (int i = 0; i < n; i++) { tempo_medio_espera_inicial += processos[i].tempo_espera_inicial; tempo_medio_espera_final += processos[i].tempo_espera_final; } tempo_medio_espera_inicial /= n; tempo_medio_espera_final /= n; printf("Tempo médio de espera para iniciar cada processo: %.2lf\n", tempo_medio_espera_inicial); printf("Tempo médio de espera para finalizar cada processo: %.2lf\n", tempo_medio_espera_final); printf("Tempo total de processador: %d\n", tempo_total); free(temp_restante); } int main() { int n; printf("Quantos processos deseja cadastrar? "); scanf("%d", &n); Processo* processos = (Processo*)malloc(n * sizeof(Processo)); for (int i = 0; i < n; i++) { printf("Nome do processo %d: ", i + 1); scanf("%s", processos[i].nome); printf("Tempo de execução do processo %d: ", i + 1); scanf("%d", &processos[i].tempo_execucao); } char algoritmo[20]; printf("Qual algoritmo de escalonamento deseja utilizar? (FCFS/SJF/Circular): "); scanf("%s", algoritmo); if (strcmp(algoritmo, "FCFS") == 0) { fcfs(processos, n); } else if (strcmp(algoritmo, "SJF") == 0) { sjf(processos, n); } else if (strcmp(algoritmo, "Circular") == 0) { int quantum; printf("Informe o quantum: "); scanf("%d", &quantum); circular(processos, n, quantum); } else { printf("Algoritmo de escalonamento inválido.\n"); } free(processos); return 0; } Quem souber como me ajudar fico agradecido!
  3. Oii gente, eu estou tendo um problema no meu algoritmo, onde ele não retorna p/ a linha que o programa pede e aparece a mensagem: "signal: segmentation fault (core dumped)". Link pelo replit: https://replit.com/@ferkamui/ex-1#main.c
  4. Alguém sabe quais seriam os parâmetros de compilação correspondentes ? HP-UX +u2 +w3 AIX -w ????? No HP-UX usamos cc. No AIX-IBM , usa o XLC ou XLCC ... Não sei bem. Mas o compilador interpreta esses parâmetros com arquivos. Existem correspondentes ? Se não, posso remover esses parâmetros e o programa vai funcionar ?
  5. #include <stdio.h> #include <stdlib.h> #include <locale.h> int main() { setlocale(LC_ALL, "Portuguese"); int dep,tax,mult=0,i=0,mont=0; printf("depósito : "); scanf("%d", &dep); printf("taxa : "); scanf("%d", &tax); tax= tax/100; while (dep != (dep*3)){ mult = dep*tax; mont = dep+mult; i++; if ( mont == (dep*3)) { printf("%d meses", i); } } // fiz isso mas não funcionou. return 0; }
  6. Ola Estou a construir um datalogger em código C.Desta forma necessito passar os dados entre ficheiros. O meu problema está na inclusão de algumas variáveis no topo de um arquivo .txt onde os dados são salvos. Variáveis como tempo de data e hora, id do dispositivo e muito mais... Para isso preciso de ajuda, gostaria que os dados estivessem disponíveis para todos os arquivos, até aí é fácil, basta incluir a variável como extern, no arquivos *.h e incluí-lo em todos os outros que você deseja que a variável esteja disponível. mas como posso fazer para ter acesso a ele dentro do array que preciso? Exemplo: main.c #include "main.h" char dateTimeFormat[24]; void main(void){ dateTimeFormat = "22-02-22 13:23:04"; } main.h extern char dateTimeFormat[24]; este.c #include "main.h" extern char dateTimeFormat[24]; /*Header .txt file initialization*/ volatile char headerFile[] ="\n\n" "# HEALT MONITORING SYSTEM \r\n" "# DEVELOPED: BIZA \r\n" "# VERSION: B \r\n" "# DATATIMECAPTURE:"+dateTimeFormat+ "\r\n" "# SAMPLINGFREQUENCY: 500 \r\n" "# SAMPLECHANNELS: 1 2 3 4 5 6 7 8 \r\n" "# SAMPLINGRESULUTION: 24 \r\n" "# IDDEVICE: HEALTHY \r\n" "# ENDOFHEADER  Como posso incluir a variável "dateTimeFormat" dentro do headerFile como descrevi acima?
  7. boa noite pode me ajuda eu fiz esse exercício e queria saber se está certo de acordo com o enunciado 4) Faça um programa que calcule e imprima o CR do período para os alunos de Sistemas de Informação. Para cada aluno o programa devera ler: a) Matrícula; b) Quantidade de disciplinas cursadas; c) Soma das médias finais das disciplinas. Além do CR de cada aluno, o programa deverá imprimir o maior CR dos alunos que cursaram 5 disciplinas ou mais. #include <stdio.h> #include <stdlib.h> void main() { int matricula, disciplinas, i; float cr, maior=0, nota, notas; do { notas = 0; printf("\nDigite a matricula: "); scanf("%d", &matricula); if (matricula < 1 || matricula > 5000) break; printf("\nDigite a quantidade de disciplinas cursadas: "); scanf("%d", &disciplinas); i = 1; while(i <= disciplinas) { printf("\nDigite a nota da disciplina %d: ", i); scanf("%f", &nota); notas += nota; i++; } cr = notas / disciplinas; printf("\nMatricula: %d", matricula); printf("\nNumero de disciplinas: %d", disciplinas); printf("\nCR: %f", cr); if (disciplinas > 4 && cr > maior) { maior = cr; } } while(matricula > 0 && matricula <= 5000); printf("\nMaior CR dos alunos: %f", maior); }
  8. Essa questão caiu na minha prova, e como não podia usar compilador para rodar a gente que tinha que rodar na nossa cabeça e colocar o valor de s,m,n .. porem não entendi o que esse codigo faz e qual seria a resposta. alguém poderia me ajudar? https://imgur.com/a/PsbVuAW
  9. Olá, to entrando agora no mundo da programação. Já programava algumas coisas em HTML, mas resolvi migrar para por algumas ideias em prática. Só que não consigo tirá-las do papel para desenvolver esse app de rede social, no estilo das que conhecemos(login,post,interação). Queria saber todos os passos e como organizar os códigos, e quais linguagem tenho que dominar para isso, para conseguir fazer da estrutura, ao layout do app. Já sei que vou precisar de um banco de dados.
  10. Conhecem algum software/libraly que traduza a saida de textos /* printf("") */ automaticamente, ou qualquer ferramenta que ajude ? Se puderem dar dicas de lógica que diminuam tabém estou aceitando, pois estou pensando em criar uma condição e a cada printf colocar uma estrutura de decisão... If(ingles==true){ printf("TEXTO es_us"); }else{ printf("TEXTO pt_br"); }
  11. Bom galera, como dito anteriormente, comecei agora o conteúdo de funções, porém não estou sabendo desenvolver uma atividade proposta. Ela é a seguinte: Faça uma função chamada MULTIPLO que recebe como parâmetro dois números inteiros e retorna o 1, se o primeiro número for múltiplo do segundo, número e o 0 caso contrário. Exemplo de utilização da função: MULTIPLO(35,5) Retornará o valor 1 MULTIPLO(35,2) Retornará o valor 0 Depois faça um programa que lê dois números inteiros e escreve se o primeiro é múltiplo do segundo, utilizando a função MULTIPLO. Até agora, tenho isso, mas sei que está errado. Poderiam me ajudar? int multiplo (int num1, int num2) { int multi; if (num1%num2 == 0) printf("1"); if (num1%num2 != 0) printf("0"); return multi; }
  12. Olá, estou com um problema no valor float de uma variável (peso). Quando o valor não é acrescido de decimais na entrada do dado (por exemplo, peso = 1 ou 2 ou 3...) o resultado é correto. Entretanto, quando o valor do peso vem com decimais (por exemplo, peso = 1.3 ou 2.3 ou 4.45...) o programa simplesmente ignora todos os demais comandos e roda o programa de maneira errada. Já quebrei a cabeça mas não encontrei solução. Quem puder me ajudar, agradeço demais. PS- sou noob então relevem se for algo prosaico rs Abaixo segue o código: /* programa para ler o peso de uma encomenda, tipo de entrega(1-sedex, 2-sedex 10) e região onde será entregue a encomenda(1- Norte, 2-Nordeste, 3-Centro-Oeste, 4-Sudeste, 5-Sul), calcular o valor de postagem com base nas condições referentes ao peso, região de entrega e tipo de entrega dispostos na apostila e imprimir o valor total da postagem */ //Inclusão de bibliotecas #include <stdio.h> #include <locale.h> int main(void) { //Comando que faz escrever com acentuação setlocale(LC_ALL,"Portuguese"); //Declaração das variáveis float peso, postagem; int tipo, regiao; //Título esubtítulo do programa printf("\tLOJAS PYONGYANG\n\n\n\n"); printf("\tCálculo do valor da postagem\n\n\n"); //Leitura dos seguintes dados de entrada: peso, tipo de entrega e região de entrega printf("Digite aqui o peso da encomenda, em kg: "); scanf("%f", &peso); printf("\nQual o tipo de entrega?\n(1- Sedex, 2- Sedex 10)\n"); scanf("%d", &tipo); printf("\nQual a região da entrega?\n(1- Norte, 2- Nordeste, 3- Centro-Oeste, 4- Sudeste, 5- Sul)\n"); scanf("%d", &regiao); postagem = 0; //Switch para os casos referentes à região, com if-else referentes à peso e tipo de entrega switch(regiao) { case 1: postagem = postagem+3; if (tipo == 1) { postagem = postagem+9; }else { if(tipo == 2) postagem = postagem+11; } if (peso <= 1.00) postagem = postagem+5; else { if(peso >= 1.00 || peso <= 5.00) postagem = postagem+10; else { if(peso > 5.00) postagem = ((peso-5.00)*3)+15+postagem; } } break; case 2: postagem = postagem+2; if (tipo == 1) { postagem = postagem+9; }else { if(tipo == 2) postagem = postagem+11; } if (peso <= 1.00) postagem = postagem+5; else { if(peso >= 1.00 && peso <= 5.00) postagem = postagem+10; else { if(peso > 5.00) postagem = ((peso-5.00)*3)+15+postagem; } } break; case 3: postagem = postagem+6; if (tipo == 1) { postagem = postagem+9; }else { if(tipo == 2) postagem = postagem+11; } if (peso <= 1.00) postagem = postagem+5; else { if(peso >= 1.00 && peso <= 5.00) postagem = postagem+10; else { if(peso > 5.00) postagem = ((peso-5.00)*3)+15+postagem; } } break; case 4: postagem = postagem+5; if (tipo == 1) { postagem = postagem+9; }else { if(tipo == 2) postagem = postagem+11; } if (peso <= 1.00) postagem = postagem+5; else { if(peso >= 1.00 && peso <= 5.00) postagem = postagem+10; else { if(peso > 5.00) postagem = ((peso-5.00)*3)+15+postagem; } } break; case 5: postagem = postagem+7; if (tipo == 1) { postagem = postagem+9; }else { if(tipo == 2) postagem = postagem+11; } if (peso <= 1.00) postagem = postagem+5; else { if(peso >= 1.00 && peso <= 5.00) postagem = postagem+10; else { if(peso > 5.00) postagem = ((peso-5.00)*3)+15+postagem; } } break; } //Impressão dos resultados printf("\n\n\nVALOR TOTAL DA POSTAGEM...................R$ %.2f\n\n", postagem); system("pause"); }
  13. Ola, estou fazendo esse exercício e gostaria de saber como posso contar cada elemento repetido em um vetor dinâmico?
  14. Estou tendo problema com esse exercício, abaixo coloquei a saída do programa, ele não está fazendo essa inversão que o exercício pede. Dada uma matriz A de dimensões 5x4 formada de elementos numéricos reais. Faça um programa em C que calcule e mostre sua matriz transposta T. #include <stdio.h> #define lin 5 #define col 4 int main(){ int i, j; float A[lin][col], t[col][lin]; for(i = 0; i < lin; i++){ for(j = 0; j < col; j++){ printf("Informe os valores de A: [%d][%d]\n", i, j); scanf("%f", &A[i][j]); } } for(i = 0; i < lin; i++){ for(j = 0; j < col; j++){ t[j][i] = A[i][j]; } } printf("\nElementos da matriz transporta:\n"); for(i = 0; i < lin; i++){ for(j = 0; j < col; j++){ printf("%.2f\n", t[j][i]); } } return 0; } eu também tentei alterar o final: printf("\nElementos da matriz transporta:\n"); for(i = 0; i < col; i++){ for(j = 0; j < lin; j++){ printf("%.2f\n", t[i][j]); } } Eu tinha feito 2 x 1 para facilitar
  15. não estou conseguindo fazer esse exercício Faça um programa em C que leia inicialmente a quantidade de procedimentos que foram realizados. Depois apresente como resultado: a) As informações de cada procedimento (mostrar normalmente); b) A quantidade total de dias que ele ficou internado; e c) O valor total que ele deverá pagar no momento de sua alta. •OBS: Utilize duas funções para calcular os totais de a e b.
  16. Para resolver este exercício, siga os passos abaixo: E = 1 + 1 / 1! + 1 / 2! + 1 / 3! + ... + 1 / (k-1)! + 1 / k! 1. A função deve receber um valor real x e calcule o valor de E. x representa o valor máximo (tolerância) para a diferença entre dois termos consecutivos. Isto é, o cálculo do valor de E deve ser computado até que |1/k! – 1/(k+1)! | < x . Imprima cada termo gerado e o resultado de E ao final. 2. Escreva uma função principal (main) que leia um valor real x e chame a função desenvolvida no item anterior. ex: 0.5 1 + 1/1! + 1/2! = 2.500 Não faço ideia de como devo fazer o fatorial de um número decimal e de como colocar a conta (1 +1/1! + 1/2! = ) junto com a resposta para cada tipo de exemplo. Tudo que eu consegui foi isso aqui: #include <stdio.h> #include <stdlib.h> #include <math.h> int main(){ float soma = 0, fat = 0, num; int i; scanf("%f", &num); for(i = 0; i < num; i++){ fat = fat * i; soma = soma + (1 / fat); } printf("%.3f", soma); return soma; }
  17. Escreva um programa que leia dez valores do teclado (usando a mesma variável) e imprima as posições do maior e do menor na sequência. ex: 2, 20, 1, 3, 6, 15, 12, 18, 8, 7. O 2o elemento é o maior. O 3o elemento é o menor. Não estou conseguindo colocar a posição de cada número. No meu programa aparece "20" e "1" em vez de "O 2o elemento é o maior." e "O 3o elemento é o menor.". Algum cidadão de bem poderia concluir esse código? Obrigado. Obs: acho que tem que fazer como vetor, mas quando eu fiz as posições saíram incorretas. #include <stdio.h> #include <stdlib.h> int main(){ int num, maior = 0, menor = 0, y = 0; printf("Digite um numero:"); scanf("%d", &num); menor = num; maior = num; for(y = 1; y < 10; y++){ printf("Digite um numero:"); scanf("%d", &num); if(num > maior) maior = num; if(num < menor) menor = num; } printf ("%d\n", maior); printf ("%d", menor); return 0; }
  18. Estou criando um login em C que precisa ser capaz de guardar múltiplos usuários e fazer com que eles possam logar. Em dado momento percebi que o fopen com o "wb" reescreve os usuários anteriores, mantendo só um. Há a possibilidade de abrir ele com a+, mas se eu fizer isso a minha função login não vai ser mais capaz de permitir a ninguém logar. Sendo assim, minha decisão foi: abrir um arquivo para cada usuário, e depois faço com que minha função login olhe arquivo por arquivo vendo se as credenciais de acesso do usuário batem com as de qualquer arquivo. O problema é que não consigo fazer a função fopen abrir diferentes arquivos utilizando a variável i. Tentei de diversas maneiras, mas aparentemente a função simplesmente não comporta mais argumentos do que "arquivo_nome", "wb". Alguém tem uma ideia de como fazer isso? Abaixo, minha função cadastrar. void cadastrar_user() { FILE *fp; struct usuario_t usuario; int i = 0; memset(&usuario,0,sizeof(struct usuario_t)); printf("\n ------Cadastro de usuario------"); printf("\n\n Insira um login> "); scanf("%s", &usuario.login); printf("\n Insira uma senha> "); scanf("%s", &usuario.senha); i++; fp = fopen("registro", "wb"); fwrite(&usuario, sizeof(struct usuario_t), 1, fp); fclose(fp); printf("\n"); printf("\n ---- Usuario cadastrado, redirecionando para login! ----"); login(); Abaixo, minha função login: int login(){ FILE *fp; struct usuario_t usuario; fp = fopen("login","rb"); memset(&usuario, 0, sizeof(struct usuario_t)); fread(&usuario, sizeof(struct usuario_t), 1, fp); fclose(fp); if(!strcmp("", usuario.login)){ printf("\n ----Cadastro não encontrado, redirecionando para cadastro!----\n"); cadastrar_user();} else { char login[LOGIN_MAX]; char senha[SENHA_MAX]; printf("\n Login> "); scanf("%s", &login); printf(" Senha> "); scanf("%s", &senha); if (!strcmp(login, usuario.login) && !strcmp(senha, usuario.senha)) { printf("\n Bem vindo %s!\n", usuario.login); menu_crud(); return 0; } else { printf(" \n----Usuario ou senha invalidos!----\n"); printf("\n Tente novamente! Redirecionando para a pagina inicial\n\n"); main(); } } return 0; }
  19. 02.) Questão DEFINIR a função recursiva em C contar ( ) para: - receber dois valores inteiros, sendo o segund certo algarismo; - retornar a quantidade de vezes que esse algarismo significativo aparecer no primeiro valor. OBS.: Recomendável não usar a conversão de inteiros para caracteres. Exemplos: 1. int z1 = contar ( 11, 0 ); // z1 = 0 2. int z2 = contar ( 10, 0 ); // z2 = 1 3. int z3 = contar ( 100, 0 ); // z3 = 2 4. int z4 = contar ( 101, 0 ); // z4 = 1 5. int z5 = contar ( 0, 0 ); // z5 = 1 6. int z6 = contar ( -10, 0 ); // z6 = 1
  20. Joelson Silva

    Fim

    ate mais
  21. oiii gente, eu estou fazendo um projeto da facul mas no meio do caminho me perdi ahsudhas, eu fiz um programinha onde deveria dar para escrever um texto com titulo porém na quando eu vou digitar o texto em si so programa só ta aceitando números não estou conseguindo alterar sla porque aaah e outra q se eu digitar um texto real ele pega o que escrevi e faz aparecer como se fosse o titulo man uashduah me perdi total nem sei como posso consertar isso segue programa ae #include <stdio.h> #include <stdlib.h> FILE* AbreArquivo(char modo, char caminho[30]) { FILE *arquivo; switch(modo) { case 'g': arquivo = fopen(caminho,"wt"); break; case 'l': arquivo = fopen(caminho,"rt"); break; case 'a': arquivo = fopen(caminho,"a"); break; } if(arquivo==NULL) { printf("não foi possivel abrir o arquivo"); exit(0); } return arquivo; } void FecharArquivo(FILE *arquivo) { fclose(arquivo); } void Cadastra(char Titulo[30], int Texto[10000]) { FILE *arquivo; arquivo = AbreArquivo('a', "vendas.txt"); fprintf(arquivo, "%s %d\n", Titulo, Texto); FecharArquivo(arquivo); } void Listar() { FILE *arquivo; char Titulo[30]; int Texto[10000]; arquivo = AbreArquivo('l',"vendas.txt"); while(!feof(arquivo)) { fscanf(arquivo,"%s %d ", &Titulo, &Texto); printf("Titulo: %s - Texto: %d\n", Titulo, Texto); } FecharArquivo(arquivo); } int main() { int opcao; char Titulo[30]; int Texto[10000]; do { system("cls"); printf("\n\n\t\também Vindo ao programa (NOME)\n"); printf("\nMENU"); printf("\n 1 - Registrar Infos"); printf("\n 2 - Consultar Infos"); printf("\n 3 - Encerrar programa"); printf("\nDigite uma opcao: "); scanf("%d", &opcao); system("cls"); switch(opcao) { case 1: printf("\nDigite o Titulo: "); setbuf(stdin,NULL); gets(Titulo); printf("\nDigite o Texto: "); scanf("%d", &Texto); Cadastra(Titulo, Texto); system("pause"); break; case 2: Listar(); system("pause"); break; case 3: printf("\n\nFinalizando...\n\n"); system("pause"); exit(0); break; default: printf("\n\nOpcao invalida! Tente Novamente!\n\n"); system("pause"); } }while(opcao!=3); return 0; }
  22. Uma empresa decidiu fazer um recrutamento para preencher algumas vagas. Os candidatos serão cadastrados por computador. Faça um programa em C para: a) Ler o número do candidato, a idade, o sexo (M/F), o estado civil (S para Solteiro/C para Casado/D para Divorciado), a experiência profissional (S/N) e a quantidade de filhos que a pessoa possui. O número de candidatos é indefinido, dessa forma, fazer a leitura e registro até que o número do candidato seja negativo, para finalizar as entradas do programa; b) Mostrar o número total de candidatos e candidatas; c) Mostrar o percentual de pessoas com experiência profissional (S). d) Mostrar o percentual de pessoas acima de 50 anos de idade. e) Mostrar o percentual dos candidatos (homens e mulheres) maiores de idade que tenham experiência no serviço; f) Mostrar o percentual das candidatas que não possuem filho e que são casadas.
  23. Boa noite, Tenho uma atividade para fazer e não estou sabendo como iniciar, referente a um editor de texto com pilhas no livro do Ziviani, Alguns editores de texto permitem que algum caractere funcione como um " cancela-caractere", cujo efeito é o de cancelar o caractere anterior na linha que está sendo editada. Por exemplo, se o cancela-caractere, então a seqüência de caracteres UEM##FMB#G corresponde à seqüência UFMG. Outro comando encontrado em editores de texto é o "cancela-linha", cujo efeito é o de cancelar todos os caracteres anteriores na linha que está sendo editada. Neste exemplo vamos considerar como o caractere cancela-linha. Finalmente, outro comando encontrado em editores de texto é o "salta-linha" , cujo efeito é o de causar a impressão dos caracteres que pertencem à linha que está sendo editada, iniciando uma nova linha de impressão a partir do caractere imediatamente seguinte ao caractere salta-linha. Por exemplo, se ` @' é o salta-linha, então a seqüência de caracteres DCC@UFMG.@ corresponde às duas linhas abaixo: DCC UFMG. Vamos escrever um Editor de Texto (ET) que aceite os três comandos descritos acima. O ET deverá ler um caractere de cada vez do texto de entrada e produzir a impressão linha a linha, cada linha contendo no máximo 70 caracteres de impressão. O ET deverá utilizar o tipo abstrato de dados Pilha definido anteriormente, implementado através de arranjo
  24. Ola!!!, programei no codeblocks um programa, mas testei depois no dev, agora no dev esta saindo com caracteres errados, sabe me dizer o porque? Exemplo: -> A matriz dividida pelo maior valor encontrado: -1,#R -1,#R -1,#R -1,#R -1,#R -1,#R -1,#R -1,#R -1,#R -1,#R -1,#R -1,#R Esse 1,#R era pra ser numeros reais...
  25. Olá pessoal, tudo bem? Preciso de uma ajuda para descobrir o erro, se puderem também aceito material de estudo, o que acontece é que eu já rodei esse código de cima a baixo e ele continua dando problema na função: Buscar: mesmo quando não existe o valor ele retorna uma posição; Excluir: ele não exclui o valor quando ele está na primeira posição; Excluir tudo: após usar quando peço para imprimir o programa dá erro #include<stdio.h> #include<stdlib.h> //criação da lista - recebe um inteiro e tem um ponteiro //*ini é o ponteiro inicial (um ponteiro que aponta para outro ponteiro) struct No{ int dado; struct No *prox; } *ini=NULL; void inserir_ini(int num){ struct No *novo; // nova estrutura com características de No novo = malloc(sizeof(No())); //pegar um espaço de memoria novo->dado=num; //informação de novo agora é num novo->prox=ini; //ponteiro de novo aponta para ini (primeiro da lista) último da lista ini=novo; // ponteiro de ini aponta para novo } void inserir_fim(int num){ struct No *aux =ini, *novo; // novo ponteiro e nova estrutura com características de No novo = malloc(sizeof(No())); //pegar um espaço de memoria novo->dado=num; //informação de novo agora é num novo->prox=NULL; //ponteiro de novo aponta para NULL if(aux==NULL){ ini=novo; //se não tinha nada na lista, ini apontava para null, logo aux aponta para null, nesse caso ini vai apontar para o primeiro da lista } else{ while(aux->prox !=NULL){ aux=aux->prox; } aux->prox=novo; //procura o último da lista e conecta o novo nele } } void imprimir(){ struct No*novo; //criou um ponteiro igual ao no if (ini == NULL) { printf("--- fim da lista ---\n\n"); return; } novo = ini; while (novo !=NULL) { printf("Info = %d\n",novo->dado); novo = novo->prox; } printf("--- fim da lista ---\n\n"); } void buscar (int busca, struct No*ini){ int contador=1; struct No *q; q = ini; while (q != NULL && q->dado != busca) { q = q->prox; contador=contador+1; } printf("O valor inserido está na posição %d",contador); } void alterar(int alvo, int alvo2, struct No*ini){ struct No *q; q = ini; while (q != NULL && q->dado != alvo) { q = q->prox; } if (q != NULL) { q->dado=alvo2; } } void excluir(int alvo, struct No*ini){ struct No *p,*q; p=ini; q=ini->prox; if (q->dado==alvo) while (q != NULL && q->dado != alvo) { p = q; q = q->prox; } if (q != NULL) { p->prox = q->prox; free (q); } } void excluirtudo(struct No*ini){ struct No *aux; while (ini!= NULL) { aux = ini; ini=aux->prox; free(aux); } ini->prox=NULL; } int main(){ int op=1, num, num2,busca; while (op!=0){ printf("\n\nMenu \n1-Insere no inicio; \n2-Insere no fim; \n3-Imprime; \n4-Buscar \n5-Alterar \n6-Excluir um \n7-Excluir tudo \n0-Finaliza \n\n Digite a opcao: "); scanf("%d", &op); switch(op){ case 1: printf("\nInsira um numero: "); scanf("%d",&num); inserir_ini(num); break; case 2: printf("\nInsira um numero: "); scanf("%d",&num); inserir_fim(num); break; case 3: imprimir(); break; case 4: printf("Insira o numero que deseja buscar:"); scanf("%d",&busca); buscar(busca,ini); break; case 5: printf("\nInsira o numero que deseja substituir: "); scanf("%d",&num); printf("\nInsira o novo numero: "); scanf("%d",&num2); alterar(num,num2, ini); break; case 6: printf("\nInsira o numero que deseja excluir: "); scanf("%d",&num); excluir(num, ini); break; case 7: excluirtudo(ini); printf("\nLista deletada."); break; } } }
×
×
  • Create New...