Ir para conteúdo
Fórum Script Brasil

Pesquisar na Comunidade

Mostrando resultados para as tags ''c''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

  • 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

Encontrar resultados em...

Encontrar resultados que...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests

  1. Boa noite pessoal, sou novo aqui e venho desesperadamente tentar por um programa qual já fiz e refiz e não consigo obter resultado algum. O programa que uso para compilar é o Dev C++, qual é o mesmo que a univerdade de meu curso utiliza. Aliás, curso Engª Mecânica, e com todas as explicações não consigo fazer o bendito programa. Aos que puderem me ajudar, agradeço. Aqui vai: Escreva um programa em C que leia 15 numeros inteiros quaisquer, informados pelo usuario e: a- A cada numero informado diga se ele é par/impar e primo/não-primo; b- Antes de encerrar diga qual a media aritmetica de cada numero informado, quantos numeros eram primos, qual o maior numero informado, qual o fatorial do menor numero informado, quantos multiplos de 5 foram informados, quantos vezes o numero 22 foi informado. O que tenho no meu mais novo intento é isso (já adianto que está bem incompleto): #include <stdio.h> #include <stdlib.h> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ int main(int argc, char *argv[]) { int numero, somanumero, maior, qtdprimos, qtd22, menor, aux, valor, qtidade, ehprimo, cont, fatorialmenor, media, multcinco; somanumero=0; maior=0; qtd22=0; qtidade=0; cont=0; while(cont<=15); printf("Informe um numero: "); scanf("%d", numero); if ((numero%2)==1) printf("é impar"); else{ printf("é par"); } ehprimo=1; aux=numero-1; while(aux>1) if((numero%aux)==0) ehprimo=0; aux=1; aux=aux-1; if(ehprimo=1) printf("é primo"); else{ printf("não é primo");} printf("Media aritimetica dos numeros informados = %d", media); printf("A quantidade de primos informados = %d", qtdprimos); printf("O maior numero informado = %d", maior); printf("Qual o fatorial do menor numero informado = %d", fatorialmenor); printf("Quantas vezes o 22 foi informado = %d", qtd22); printf("Quantas multiplos de cinco = %d", multcinco); return 0; }
  2. Alguém sabe calcular a complexidade de um programa em C, para o melhor e pior caso? Tenho os códigos fontes aqui dos programas (5), são programas simples.
  3. Boa noite estou tentando entender um algoritimo para ordenação de vetores porem não consequi entender bem seu funcionamento alquem poderia me explicar o codigo. #include <stdio.h> #include <conio.h> int bolha(int vet[], int t){ int i,j,aux,pos; for(i=0; i<t-1; i++){ for(j=i+1; j<t; j++){ if(vet > vet[j]){ aux = vet; vet = vet[j]; vet[j] = aux; }if(pos!=1){ aux = vet; vet = vet [pos]; vet[pos] = aux; } } } } desde já obrigado.
  4. Elaborar um algorítmo utilizando a linguagem C para auxiliar na pesquisa de uma empresa, sendo que esta deseja saber o número de filhos que cada funcionário possui com idade de 15 a 18 anos. O algorítmo deverá retornar o número de filhos com a idade esperada dos funcionários do sexo ''masculino'' e o número de filhos com a idade esperada dos funcionários do sexo ''feminino''. O usuário deverá informar o número de funcionários que a empresa possui. Por favor, não consigo desenvolver tal algoritmo em C. Tenho certa base da linguagem, porém não passo da declaração das variáveis e pergunta para o usuário a quantidade total de funcionários da empresa.
  5. Olá a todos, Meu curso de programação da faculdade só comeca semestre mas como me interesso no assunto já estou me aventurando um pouco agora, mas não tenho muito conhecimento. Gosteria de saber o que há de errado nesse codigo que escrevo: #include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char** argv) { char elemento1[20]; printf("Digite um elemento: "); scanf("%s", &elemento1[20]); if(elemento1[20] == 'Hidrogenio'){ printf("\n\nA sigla desse elemento é: H \n"); } return 0; } Recebo a seguinte mensagem de erro: "character constant too long for its type"
  6. josesilva

    Múltiplos em C

    Olá pessoal, gostaria que me ajudassem com o problema abaixo: Seu programa deve ser capaz de receber um número N do usuário e escrever os primeiros N múltiplos desse número, começando de 1 até N com uma forma semelhante a uma pirâmide. Ex: Digite o tamanho da pirâmide. 5// entrada do usuário A pirâmide é a seguinte: 1 2 4 3 6 9 4 8 12 16 5 10 15 20 25
  7. Ola, eu precisava de ajuda com uma maquina de snaks, eu já fiz um codigo inicial, mas preciso de adicionar mais umas coisas: 1) Criar uma estrutura produto para guardar os dados relativos a designação, preço, quantidade em stock, total de quantidade vendida de todos os produtos disponibilizados na máquina; 2) Criar um procedimento/função para configurar os produtos disponíveis na máquina, acedido através da opção -99; 3) O menu de produtos a exibir na máquina deverá ser construído dinamicamente através do dados armazenados na estrutura de dados (designação). Obrigado Codigo: #include <stdio.h> #include <stdlib.h> #include <conio.h> int main() { int op, custo=0, moeda, creditos; do { //exibir o menu de produtos system("cls"); printf("\t"); printf("%c", 218); for (int i=1; i<48; i++) printf("%c", 196); printf("%c", 191); printf("\n\t%c (1) Caf%c longo\t\t(70 c%cntimos)\t%c", 179, 130, 136, 179); printf("\n\t%c (2) Caf%c curto\t\t(70 c%cntimos)\t%c", 179, 130, 136, 179); printf("\n\t%c (3) Caf%c pingado\t\t(80 c%cntimos)\t%c", 179, 130, 136, 179); printf("\n\t%c (4) Cappucino\t\t\t(95 c%cntimos)\t%c", 179, 136, 179); printf("\n\t%c (5) Chocolate\t\t\t(85 c%cntimos)\t%c", 179, 136, 179); printf("\n\t%c (6) Gal%co\t\t\t(95 c%cntimos)\t%c", 179, 198, 136, 179); printf("\n\t%c (7) Ch%c de lim%co\t\t(60 c%cntimos)\t%c", 179, 160, 198, 136,179); printf("\n\t%c", 192); for (int i=1; i<48; i++) printf("%c", 196); printf("%c", 217); printf("\n\n\t Digite a sua op%c%co: ", 135, 198); scanf("%d", &op); fflush(stdin); /*se for digitado -99 significa que a maquina vai ser desligada, por isso não será necessário correr o bloco de instruções do switch, ficando assim o programa mais rápido a ser executado e finalizado*/ if (op!=-99) { //verificar qual o produto e o respetivo custo switch(op) { case 1 : printf("\n\tCaf%c longo", 130); custo=70; break; case 2 : printf("\n\tCaf%c curto", 130); custo=70; break; case 3 : printf("\n\tCaf%c pingado", 130); custo=80; break; case 4 : printf("\n\tCappucino"); custo=95; break; case 5 : printf("\n\tChocolate"); custo=85; break; case 6 : printf("\n\tGal%co", 132); custo=95; break; case 7 : printf("\n\tCh%c de lim%co", 160, 132); custo=60; break; default: printf("\n\tOp%c%co inv%clida.", 135, 132, 160); custo=0; getch(); } /*se for digitada uma opçao invalida, então a var custo terá o valor zero, o que significa que não se vai ser feito o pedido de inserção de moedas*/ if (custo>0) { //controlar inserção de moedas //colocar a variável creditos a zero creditos=0; do { printf("\n\tCreditos= %d. ", creditos); printf("Em falta = %d.", creditos<custo? custo-creditos: 0); printf("\n\tInsira moeda: "); scanf("%d", &moeda); fflush(stdin); //verificar se as moedas são as aceites pela maquina if (moeda==5 || moeda==10 || moeda==20 || moeda==50 || moeda==100 || moeda==200) creditos += moeda; } while (creditos < custo); //verificar se existe troco a dar if (creditos > custo) printf("\n\tO seu troco= %d.", creditos-custo); printf("\n\tRetire a sua bebida. Obrigado.\n\n"); system("pause"); } } } while (op!=-99); puts("\t\t\t---bye---"); return 0; }
  8. Como posso excluir um dado com malloc e free?
  9. Olá, estou fazendo seguinte programa com o objetivo simples de criar uma matriz com as dimensões dadas pelo usuário durante a execução do programa, depois preencher todos os elementos da matriz com um caractere também dado pelo usuário, e por fim exibir todos os elementos da matriz na tela. Ignorem o fato de eu não ter liberado memoria por que como disse ainda estou escrevendo o programa então falta algumas partes ainda. Bom vamos ao que interessa "O erro", o programa esta compilando normalmente sem erros. Porem não consigo executá-lo até o final, ele trava antes de imprimir os elementos da matriz. Eu depurei o programa no visual estúdio e obtive a seguinte mensagem de erro: "Exception thrown at 0x00CD19CD in SQUARE.exe: 0xC0000005: Access violation writing location 0xCDCDCDCD. If there is a handler for this exception, the program may be safely continued." Também já consegui localizar o erro só não sei como corrigi-lo :). O erro está na hora de alocar o caractere na matriz, ou seja na função "gravar_char(void)". Desde já agradeço se poderem me ajudar. OBS. se forem compilar o código em um compilador que não seja o do visual studio, alterem a função "scanf_s" por "scanf" ou então dará erro na compilação. CÓDIGO: /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // program name: SQUARE // // author: "I.L" // // target: criar uma matriz bidimencional com as dimenções dadas pelo usuario durante a execução do programa // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //libarys #include <iostream> #include <stdio.h> #include <stdlib.h> using namespace std; //variaveis globais int COLUNAS_MATRIZ; int LINHAS_MATRIZ; char **MATRIZ; char CARACTER; //declaraçõa das funções void menu_inicial(void); void menu_texturas(void); char **Alocar_matriz_real(int linhas, int colunas); void gravar_char(void); void mostrar_matriz(char **vetor); void clearbuffer(void); //função principal (main) int main(void) { system("title SQUARE"); menu_inicial(); system("cls"); menu_texturas(); gravar_char(); mostrar_matriz(); cin.get(); return 0; } //menu inicial //recebe as dimenções do usuario void menu_inicial(void) { //aqui é onde o usuario entra com as dimenções da matriz printf("\tMENU INICIAL\n\n"); printf("Especifique o numero de colunas e o numerode linhas da matriz:\n"); printf("colunas: "); scanf_s("%i", &COLUNAS_MATRIZ); clearbuffer(); printf("linhas: "); scanf_s("%i", &LINHAS_MATRIZ); clearbuffer(); //gerando a matriz MATRIZ = Alocar_matriz_real(LINHAS_MATRIZ, COLUNAS_MATRIZ); } //menu texturas // da ao usuario a opção de escolher um caracter para peencher sua matriz void menu_texturas(void) { int escolha; //LISTA DE TESTURAS char text_01 = -78; char text_02 = -79; char text_03 = -80; char text_04 = 36; char text_05 = 35; char text_06 = 38; char text_07 = 64; char text_08 = -37; char text_09 = -36; char text_10 = -50; printf("\t TEXTURAS\n\n"); printf("Escolha uma textura para seu quadrado:"); printf("\n\n"); printf(" _____ _____ _____ _____ _____ _____ _____ _____ _____ ______\n"); printf("| 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 | | 8 | | 9 | | 10 |\n"); printf("| | | | | | | | | | | | | | | | | | | |\n"); printf("| %c | | %c | | %c | | %c | | %c | | %c | | %c | | %c | | %c | | %c |\n", text_01, text_02, text_03, text_04, text_05, text_06, text_07, text_08, text_09, text_10); printf("|_____| |_____| |_____| |_____| |_____| |_____| |_____| |_____| |_____| |______|\n\n\t\t\t\tEscolha: "); scanf_s("%i", &escolha); clearbuffer(); while (true) { if (escolha <= 0 || escolha > 10) { printf("\n"); while (escolha <= 0 || escolha > 10) { printf("Erro, valor %i nao permitido! ", escolha); scanf_s("%i", &escolha); clearbuffer(); } } break; } switch (escolha) { case 1: CARACTER = text_01; break; case 2: CARACTER = text_02; break; case 3: CARACTER = text_03; break; case 4: CARACTER = text_04; break; case 5: CARACTER = text_05; break; case 6: CARACTER = text_06; break; case 7: CARACTER = text_07; break; case 8: CARACTER = text_08; break; case 9: CARACTER = text_09; break; case 10: CARACTER = text_10; break; default: printf("\nErro desconhecido!"); cin.get(); break; } } //função que gera a matriz com as dimenções que o usuario passou char **Alocar_matriz_real(int linhas, int colunas) { if (linhas < 1 || colunas < 1) { /* verifica parametros recebidos */ printf("** Erro: Parametro invalido **\n"); return (NULL); } /* aloca espaço na memoria para a matriz */ char **matriz_aux = (char **)malloc((5 * sizeof(char *)) - 1); if (matriz_aux == NULL) { printf("** Erro: Memoria Insuficiente **"); return (NULL); } return(matriz_aux); } //função que aloca o caracter inserido pelo usuario void gravar_char(void) { //loop que vai alocar o caracter passado pelo usuario em cada elemento da matriz for (int linhas = 0; linhas < LINHAS_MATRIZ; ++linhas) { for (int colunas = 0; colunas < COLUNAS_MATRIZ; ++colunas) { MATRIZ[linhas][colunas] = (char)CARACTER; } } } //função que inprime na tela todos os elementos da matriz void mostrar_matriz(char **vetor) { printf("\tRESULTADO\n\n"); printf("Quadrado gerado: \n\n"); for (int linhas = 0; linhas < LINHAS_MATRIZ; ++linhas) { for (int colunas = 0; colunas < COLUNAS_MATRIZ; ++colunas) { printf("%c", vetor[linhas][colunas]); } printf("\n"); } } //limpa o buffer void clearbuffer(void) { char c; while ((c = getchar() != '\n' && c != EOF)); }
  10. Olá pessoal, alguém poderia responder essa questão? A adega de São Francisco trabalha com vinhos de origem nacional e importado. Para cada vinho, a empresa armazena o código, a descrição do produto, a categoria, a quantidade existente no estoque e o valor unitário, conforme descrito a seguir: Produto código descriçao origem quantidade valor 1) Ler e armazernar as informações dos vinhos. O estoque máximo da empresa são de 100 produtos distintos. 2) Consultar e imprimir as informações de um vinho pelo código. 3) Listar os vinhos em ordem crescente de preço 4) Imprimir o valor total do estoque da empresa 5) Imprimir o valor nacional mais caro 6) Separar os vinhos por origem em 2 (dois) vetores. 7) Criar um menu para executar as ações acima Obs.: Utilizar struct Desde já, agradeço!
  11. #include <stdio.h> int main() { int C,n,r,t,total1=1,total2=1,total3=1; printf("- Combination of n took r -\n"); printf("Put n: "); scanf("%d",&n); printf("Put r: "); scanf("%d",&r); for( n ; n > 1 ; n--) total1 = total1 * n; for( r ; r > 1 ; r--) total2 = total2 * r; t=total1 - total2; for( t ; t > 1 ; t--) total3 = total3 * t; C = total1/total2*total3; printf("\n\n\n The combination is:%d ",C); printf("\n\n\n\n"); printf("%d",total1); return 0; } Questão: Escreva um programa que calcule o número de combinações de n objetos tomados r de cada vez. Os valores n e r devem ser solicitados ao usuário. nCr= fatorial(n)/fatorial(r) * fatorial(n-r) Então, não pesquisei na internet como fazer. O código executa, porém, não chega ao resultado desejado. Aparece "Declaração sem efeito". Estou no Falcon C++. Sou iniciante. Agradecido :) .
  12. Olá, Resolvi um exercício do livro do Luís Damas (Linguagem C). O problema é que não entendo a solução apresentada no livro. O exercício: char *StrDelStr(char *s1, char *s2) apaga em s1 a primeira ocorrência de s2. Exemplo: char p[] = "O rato roeu a rolha da garrafa de rum do rei da Rússia" StrDelStr(p, "rum"); puts(p) -> "O rato roeu a rolha da garrafa de do rei da Rússia" A solução do livro: char *StrDelStr(char *s1, char *s2) { char *loc = strstr(s1,s2); if (loc != NULL) strcpy(loc,loc+strlen(s2)); return s1; } O retorno de strstr é 'rum do rei da Rússia'. strcpy copia para dest(loc) um espaço maior que dest tem. O que entendo que é errado. E o resultado é o esperado. sem o trecho 'rum'. Alguém poderia explicar, passo a passo, o procedimento ? Aqui minha solução. Sem o uso de string.h. Na correria esqueci de extender o prazo do paste.debian.net. Posto de novo se necessário. http://paste.debian.net/405773 Download do arquivo: http://paste.debian.net/download/405773 Abraço, Herbert
  13. Tenho essa condição, a dúvida é, como fazer corretamente a parte que está em destaque na cor verde? if((numDecimal < 0) || (numDecimal > 510) || (numDecimal != int)){ printf("\nValor invalido, tente novamente!\n"); }
  14. O que a de errado com o trecho em destaque da imagem na cor amarela?
  15. Preciso de Ajuda, programação C 4. Faça uma função que receba três números inteiros como parâmetros, representando horas, minutos e segundos e os converta em segundos. 5. Faça uma função que receba um número inteiro positivo N como parâmetro e retorne a soma dos N números inteiros existentes entre 1 e esse número. 6. Escreva uma função que recebe como parâmetro um inteiro positivo ANO e devolve 1 se ano for bissexto, 0 em caso contrário. (Dica: Um ano é bissexto se ele é divisível por 4) 7. Escrever um algoritmo que lê um vetor K(15) e o escreve. Crie, a seguir, um vetor P, que contenha todos os números primos de K e o resto das posições deve ser preenchido com zero. Escreva o vetor P. (Dica: use a função da questão 2)
  16. Boa noite! Estou iniciando na programação. Estou utilizando o Eclipse Galileo. Este é um erro básico. Vocês podem me ajudar? Depois de tentar rodar o programa acima, fiz o programa abaixo, só que não consigo compilar e executar. Vocês podem me ajudar?
  17. Boa noite! Estou iniciando na programação. Estou utilizando o Eclipse Galileo. Este é um erro básico. Vocês podem me ajudar? #include <stdio.h> int main (void) { int a; int b; float c; char d; a = 1; b = a + 2; c = b * 0.5; d = 'x'; return 0; } DÁ O SEGUINTE ERRO: VARIABLE 'C' SET BUT NOT USED [-WUNUSED-BUT-SET-VARIABLE] VARIABLE 'D' SET BUT NOT USED [-WUNUSED-BUT-SET-VARIABLE] COMO SOLUCIONAR? DEPOIS DESSE PROGRAMA NO LADO ESQUERDO DA JANELA DO ECLIPSE CRIEI MAIS UM PROGRAMA E FICOU JUNTO DO OUTRO SÓ QUE ABAIXO DELE. SÓ QUE QUANDO EU TENTO COMPILAR E EXECUTAR O NOVO PROGRAMA, AS MENSAGENS DE BUG DO ANTIGO CONTINUA NA ABA PROBLEMS NA JANELA DE BAIXO DO PROGRAMA. COMO FAZER PARA APAGAR AS MENSAGENS E TESTAR O OUTRO PROGRAMA, SEM TER QUE DELETAR OS OUTROS PROGRAMAS ANTERIORES QUE FIZ PARA FAZER SÓ TER UM NOVO?
  18. Boa tarde! Fiz o seguinte programa: #include <stdio.h> int main(void) { char num_primo; int num; int i; scanf("%d", &num); while(num>0){ num_primo='s'; for(i=2;i<num;i++){ if(num%i==0){ num_primo='n'; break; } } if (num_primo=='s') print("Numero primo.\n"); else printf("Numero não primo.\n"); scanf("%d", &num); } system("pause"); return 0; } ACUSOU O SEGUINTE ERRO: [Error] ld returned 1 exit status ALGUÉM SABE O QUE ESSE ERRO SIGNIFICA E COMO POSSO SOLUCIONÁ-LO? VALEU!
  19. Boa tarde, estou com algumas dúvidas de como eu fazia um jogo do PacMan usando a biblioteca gráfica SDL2.Por onde eu começaria? Eu sei que o mapa seria uma Matriz, mas eu colocaria uma imagem pronta do mapa ou ir montando parte por parte pela matriz? Como eu fazia os fantasma indo atrás do PacMan? Poderiam me dar umas dicas por onde começar ?
  20. Pessoal, fiz um código com a informação de vendas de uma loja, no período de 30 dias. O código varre todos os valores e imprime o i) DIA e ii) Maior QTD desse período. A dúvida: - quando eu altero de 30 para 29 dias, o código roda normalmente; - quando eu altero de 29 para 28 dias, o código roda normalmente; - quando eu altero de 28 para 27 dias, o código roda normalmente; - quando eu altero de 27 para 26 dias, o código roda normalmente; - quando eu altero de 26 para 25 dias, o código tem um PROBLEMA na SAIDA! No 1 caso (com 30 dias) ele mostra a seguinte saída: i: 0 qtd_venda: 0 dia_venda: 0 O dia de maior venda foi o 8, com a quantidade de 8999992 No 2 caso (com 25 dias) ele mostra a seguinte saída: i: 0 qtd_venda: 0 dia_venda: 0 O dia de maior venda foi o 32767, com a quantidade de 0 Tentei rodar diversas vezes para encontrar a resposta mas não achei. Parece ser alguma coisa em relação e memória. Eu até mandei imprimir os valores para saber o que acontece quando eu altero de 26 pata 25 e na variável "dia_venda"aparece o valor 32767 (nos anteriores aparecia 0!). Alguém consegue me ajudar nessa? -------------------- CÓDIGO 1 (OK)-------------------- # include <stdlib.h> # include <stdio.h> int main () { int dia[30]; dia[0] = 11; dia[1] = 23; dia[2] = 54; dia[3] = 77; dia[4] = 13; dia[5] = 2; dia[6] = 26; dia[7] = 8999992; dia[8] = 40; dia[9] = 218; dia[10] = 2319; dia[11] = 3438; dia[12] = 99995; dia[13] = 3; dia[14] = 23; dia[15] = 23; dia[16] = 23; dia[17] = 23; dia[18] = 23; dia[19] = 23; dia[20] = 23; dia[21] = 23; dia[22] = 23; dia[23] = 23; dia[24] = 23; dia[25] = 23; dia[26] = 23; dia[27] = 23; dia[28] = 23; dia[29] = 23; for (int i = 0; i < 30; i++){ printf("%d_", dia); } int i =0; int qtd_venda = 0; int dia_venda; printf("\n\ni: %d\n", i); printf("qtd_venda: %d\n", qtd_venda); printf("dia_venda: %d\n\n\n", dia_venda); for (int i; i < 30; i++){ if (dia > qtd_venda){ dia_venda = (i + 1); qtd_venda = dia; } } printf("O dia de maior venda foi o %d, com a quantidade de %d\n", dia_venda, qtd_venda); return 0; } -------------------- CÓDIGO 2 (PROBLEMA)-------------------- # include <stdlib.h> # include <stdio.h> int main () { int dia[25]; dia[0] = 11; dia[1] = 23; dia[2] = 54; dia[3] = 77; dia[4] = 13; dia[5] = 2; dia[6] = 26; dia[7] = 8999992; dia[8] = 40; dia[9] = 218; dia[10] = 2319; dia[11] = 3438; dia[12] = 99995; dia[13] = 3; dia[14] = 23; dia[15] = 23; dia[16] = 23; dia[17] = 23; dia[18] = 23; dia[19] = 23; dia[20] = 23; dia[21] = 23; dia[22] = 23; dia[23] = 23; dia[24] = 23; for (int i = 0; i < 25; i++){ printf("%d_", dia); } int i =0; int qtd_venda = 0; int dia_venda; printf("\n\ni: %d\n", i); printf("qtd_venda: %d\n", qtd_venda); printf("dia_venda: %d\n\n\n", dia_venda); for (int i; i < 25; i++){ if (dia > qtd_venda){ dia_venda = (i + 1); qtd_venda = dia; } } printf("O dia de maior venda foi o %d, com a quantidade de %d\n", dia_venda, qtd_venda); return 0; }
  21. Galera, Estou tentando usar o api da cURL, mas até agora não consegui utilizar no Dev c++, alguém sabe como instalo e utilizo essa biblioteca? Quando compilo aparece os seguinte erro. [Linker error] undefined reference to `_imp__curl_easy_init'
  22. Bem , boa tarde, achei um código antigo meu bastante util para quem esta aprendendo a programar em C. Cadastro de moradores v.3.0! Download: Cadastro morador 3.0 #include <stdio.h> #include <stdlib.h> #define MAX_NUM_MORADOR 100 #define SOLTEIRO 0 #define MAX_STRING 50 /* Criador: Eduardo Dantas E-mail: dantasleld@gmail.com Data: 17/08/2012 */ struct Endereco{ char CIDADE[MAX_STRING]; char BAIRRO[MAX_STRING]; int CEP; char RUA[MAX_STRING]; int NUM; }; struct DataNascimento{ short dia; short mes; short ano; }; struct Morador{ char NOME[MAX_STRING]; int ESTCIVIL; struct DataNascimento NASC; char LOCALNASC[MAX_STRING]; int RG; int FONE; struct Endereco END; char EMPRESA[MAX_STRING]; char FUNCAO[MAX_STRING]; }; int numMoradores = 0; struct Morador CADASTRO[MAX_NUM_MORADOR]; int main() { int op; int vetor[MAX_NUM_MORADOR]; void ExibirTodosCadastro(); void ReceberCadastro(); void PesquisaPorPosicao(); void AlterarPorPosicao(); void ExcluirTudo(struct Morador cadastro[]); void ExcluirPorPosicao(struct Morador cadastro[]); void SalvarTXT(); printf("\t# Bem vindo ao cadastro de moradores 3.0 ! #\n"); printf("\t\t %c Escolha uma opcao:\n",4); printf("\t\t%c 1 - Criar Cadastro\n",16); printf("\t\t%c 2 - Ler todos os cadastros\n",16); printf("\t\t%c 3 - Pesquisar cadastro por posicao\n",16); printf("\t\t%c 4 - Alterar cadastro por posicao\n",16); printf("\t\t%c 5 - Excluir todos os cadastros\n",16); printf("\t\t%c 6 - Excluir cadastro por posicao\n",16); printf("\t\t%c 7 - Salvar dados em documento de texto\n",16); scanf("%i",&op); switch (op){ case 1: ReceberCadastro(CADASTRO); break; case 2: ExibirTodosCadastro(); break; case 3: PesquisaPorPosicao(); break; case 4: AlterarPorPosicao(); break; case 5: ExcluirTudo(CADASTRO); break; case 6: ExcluirPorPosicao(CADASTRO); break; case 7: SalvarTXT(); break; default: printf("Comando invalido!\n"); system("pause"); exit(0); } system("pause"); return 0; } void SalvarTXT(){ void limparBuffer(); int main(); char txt[MAX_STRING]; FILE *arq;// = fopen("Cadastro de Moradores.txt","w"); if (numMoradores == 0){ printf("Nao existe cadastro!\n"); system("pause"); system("cls"); main(); } printf("(Nao esqueca de por .txt no final)\n"); printf("Digite o nome do arquivo para salvar:"); limparBuffer(); char c; int x = 0; do { c = getchar(); txt[x] = c; ++x; } while ( c != '\n'); txt[x-1] = '\0'; arq = fopen(txt,"w"); printf("Salvando arquivo %s ...\n",txt); for(int i = 0; i < numMoradores; ++i){ fprintf(arq,"\n\tMorador %i:\n",i+1); if (CADASTRO[i].NOME[0] == '\0'){ fprintf(arq,"Cadastro %i vazio!\n",i+1); continue; } fprintf(arq,"Nome:%s",CADASTRO[i].NOME); if (CADASTRO[i].ESTCIVIL == SOLTEIRO) fprintf(arq,"Estado Civil:Solteiro\n"); else fprintf(arq,"Estado Civil:Casado\n"); fprintf(arq,"Data de Nascimento:%i/%i/%i\n",CADASTRO[i].NASC.dia,CADASTRO[i].NASC.mes,CADASTRO[i].NASC.ano); fprintf(arq,"Local de Nascimento:%s",CADASTRO[i].LOCALNASC); fprintf(arq,"RG:%i\n",CADASTRO[i].RG); fprintf(arq,"Telefone:%i\n",CADASTRO[i].FONE); fprintf(arq,"Endereco:\n"); fprintf(arq,"Rua:%s",CADASTRO[i].END.RUA); fprintf(arq,"Numero:%i\n",CADASTRO[i].END.NUM); fprintf(arq,"CEP:%i\n",CADASTRO[i].END.CEP); fprintf(arq,"Bairro:%s",CADASTRO[i].END.BAIRRO); fprintf(arq,"Cidade:%s",CADASTRO[i].END.CIDADE); fprintf(arq,"Empresa:%s",CADASTRO[i].EMPRESA); fprintf(arq,"Funcao:%s",CADASTRO[i].FUNCAO); } fclose(arq); printf("\n\t Arquivo Salvo com sucesso!\n"); system("pause"); system("cls"); main(); } void ExcluirPorPosicao(struct Morador cadastro[]){ int i = 0; char op; void limparBuffer(); if (numMoradores == 0){ printf("Nao existe cadastro!\n"); system("pause"); system("cls"); main(); } printf("Tem certeza que deseja excluir todos os cadastros?s/n\n"); limparBuffer(); scanf("%c",&op); if(op != 's'){ printf("Voce cancelou a exclusao de todos os cadastros."); system("pause"); system("cls"); main(); } printf("Digite a localizacao(1 a %i:",numMoradores); scanf("%i",&i); --i; if(i < 0 || i > numMoradores){ printf("Valor invalido!\n"); system("pause"); system("cls"); main(); } for(int x = 0 ; x < MAX_STRING ; ++x) cadastro[i].NOME[x] = '\0'; cadastro[i].ESTCIVIL = 0; cadastro[i].NASC.dia = 0; cadastro[i].NASC.mes = 0; cadastro[i].NASC.ano = 0; for(int x = 0 ; x < MAX_STRING ; ++x) cadastro[i].LOCALNASC[x] = '\0'; cadastro[i].RG = 0; cadastro[i].FONE = 0; for(int x = 0 ; x < MAX_STRING ; ++x) cadastro[i].END.RUA[x] = '\0'; cadastro[i].END.NUM = 0; cadastro[i].END.CEP = 0; for(int x = 0 ; x < MAX_STRING ; ++x){ cadastro[i].END.BAIRRO[x] = '\0'; cadastro[i].END.CIDADE[x] = '\0'; cadastro[i].EMPRESA[x] = '\0'; cadastro[i].FUNCAO[x] = '\0'; } printf("\t\tCadastro excluido com sucesso!\n"); system("pause"); system("cls"); main(); } void ExcluirTudo(struct Morador cadastro[]){ void limparBuffer(); int main(); char op; if (numMoradores == 0){ printf("Nao existe cadastro!\n"); system("pause"); system("cls"); main(); } printf("Tem certeza que deseja excluir todos os cadastros?s/n\n"); limparBuffer(); scanf("%c",&op); if(op != 's'){ printf("Voce cancelou a exclusao de todos os cadastros."); system("pause"); system("cls"); main(); } for(int i = 0; i < numMoradores; ++i){ for(int x = 0 ; x < MAX_STRING ; ++x) cadastro[i].NOME[x] = '\0'; cadastro[i].ESTCIVIL = 0; cadastro[i].NASC.dia = 0; cadastro[i].NASC.mes = 0; cadastro[i].NASC.ano = 0; for(int x = 0 ; x < MAX_STRING ; ++x) cadastro[i].LOCALNASC[x] = '\0'; cadastro[i].RG = 0; cadastro[i].FONE = 0; for(int x = 0 ; x < MAX_STRING ; ++x) cadastro[i].END.RUA[x] = '\0'; cadastro[i].END.NUM = 0; cadastro[i].END.CEP = 0; for(int x = 0 ; x < MAX_STRING ; ++x){ cadastro[i].END.BAIRRO[x] = '\0'; cadastro[i].END.CIDADE[x] = '\0'; cadastro[i].EMPRESA[x] = '\0'; cadastro[i].FUNCAO[x] = '\0'; } } numMoradores = 0; printf("\t\tCadastro excluido com sucesso!\n"); system("pause"); system("cls"); main(); } void AlterarPorPosicao(){ void limparBuffer(); int i = 0; if (numMoradores == 0){ printf("Nao existe cadastro!\n"); system("pause"); system("cls"); main(); } printf("Digite a localizacao(1 a %i:",numMoradores); scanf("%i",&i); --i; if(i < 0 || i > numMoradores){ printf("Valor invalido!\n"); system("pause"); system("cls"); main(); } limparBuffer(); printf("\t# Iniciar processo de alteracao de cadastro #\n",numMoradores); printf("Nome:"); fgets(CADASTRO[i].NOME,MAX_STRING,stdin); printf("(0-Solteiro 1-Casado)Estado Civil:"); scanf("%i",&CADASTRO[i].ESTCIVIL); limparBuffer(); printf("Data de Nascimento:\n"); printf("Dia:"); scanf("%i",&CADASTRO[i].NASC.dia); printf("Mes:"); scanf("%i",&CADASTRO[i].NASC.mes); printf("Ano:"); scanf("%i",&CADASTRO[i].NASC.ano); limparBuffer(); printf("Local de Nascimento:"); fgets(CADASTRO[i].LOCALNASC,MAX_STRING,stdin); printf("RG:"); scanf("%i",&CADASTRO[i].RG); printf("Telefone:"); scanf("%i",&CADASTRO[i].FONE); printf("Endereco:\n"); limparBuffer(); printf("Cidade:"); fgets(CADASTRO[i].END.CIDADE,MAX_STRING,stdin); limparBuffer(); printf("Bairro:"); fgets(CADASTRO[i].END.BAIRRO,MAX_STRING,stdin); limparBuffer(); printf("CEP:"); scanf("%i",&CADASTRO[i].END.CEP); limparBuffer(); printf("Rua:"); fgets(CADASTRO[i].END.RUA,MAX_STRING,stdin); limparBuffer(); printf("Numero:"); scanf("%i",&CADASTRO[i].END.NUM); limparBuffer(); printf("Empresa:"); fgets(CADASTRO[i].EMPRESA,MAX_STRING,stdin); limparBuffer(); printf("Funcao:"); fgets(CADASTRO[i].FUNCAO,MAX_STRING,stdin); limparBuffer(); system("cls"); printf("\t\tCadastro alterado com sucesso!\n"); system("pause"); system("cls"); main(); } void PesquisaPorPosicao(){ int i = 0; if (numMoradores == 0){ printf("Nao existe cadastro!\n"); system("pause"); system("cls"); main(); } printf("Digite a localizacao(1 a %i:",numMoradores); scanf("%i",&i); --i; if(i < 0 || i > numMoradores){ printf("Valor invalido!\n"); system("pause"); system("cls"); main(); } if (CADASTRO[i].NOME[0] == '\0'){ printf("Cadastro vazio!\n"); system("pause"); system("cls"); main(); } printf("Nome:%s",CADASTRO[i].NOME); if (CADASTRO[i].ESTCIVIL == SOLTEIRO) printf("Estado Civil:Solteiro\n"); else printf("Estado Civil:Casado\n"); printf("Data de Nascimento:%i/%i/%i\n",CADASTRO[i].NASC.dia,CADASTRO[i].NASC.mes,CADASTRO[i].NASC.ano); printf("Local de Nascimento:%s",CADASTRO[i].LOCALNASC); printf("RG:%i\n",CADASTRO[i].RG); printf("Telefone:%i\n",CADASTRO[i].FONE); printf("Endereco:\n"); printf("Rua:%s",CADASTRO[i].END.RUA); printf("Numero:%i\n",CADASTRO[i].END.NUM); printf("CEP:%i\n",CADASTRO[i].END.CEP); printf("Bairro:%s",CADASTRO[i].END.BAIRRO); printf("Cidade:%s",CADASTRO[i].END.CIDADE); printf("Empresa:%s",CADASTRO[i].EMPRESA); printf("Funcao:%s",CADASTRO[i].FUNCAO); system("pause"); system("cls"); main(); } void ExibirTodosCadastro(){ if (numMoradores == 0){ printf("Nao existe cadastro!\n"); system("pause"); system("cls"); main(); } for(int i = 0; i < numMoradores; ++i){ printf("\n\t%c Morador %i:\n",16,i+1); if (CADASTRO[i].NOME[0] == '\0'){ printf("Cadastro %i vazio!\n",i+1); continue; } printf("Nome:%s",CADASTRO[i].NOME); if (CADASTRO[i].ESTCIVIL == SOLTEIRO) printf("Estado Civil:Solteiro\n"); else printf("Estado Civil:Casado\n"); printf("Data de Nascimento:%i/%i/%i\n",CADASTRO[i].NASC.dia,CADASTRO[i].NASC.mes,CADASTRO[i].NASC.ano); printf("Local de Nascimento:%s",CADASTRO[i].LOCALNASC); printf("RG:%i\n",CADASTRO[i].RG); printf("Telefone:%i\n",CADASTRO[i].FONE); printf("Endereco:\n"); printf("Rua:%s",CADASTRO[i].END.RUA); printf("Numero:%i\n",CADASTRO[i].END.NUM); printf("CEP:%i\n",CADASTRO[i].END.CEP); printf("Bairro:%s",CADASTRO[i].END.BAIRRO); printf("Cidade:%s",CADASTRO[i].END.CIDADE); printf("Empresa:%s",CADASTRO[i].EMPRESA); printf("Funcao:%s",CADASTRO[i].FUNCAO); } system("pause"); system("cls"); main(); } void ReceberCadastro(struct Morador cadastro[]){ void limparBuffer(); int main(); if (numMoradores > 0){ printf("Ja existe cadastro!"); system("pause"); system("cls"); main(); } printf("Quantos moradores voce deseja cadastrar?"); scanf("%i",&numMoradores); if (numMoradores > MAX_NUM_MORADOR){ printf("Por favor, digite um valor positivo ate 100."); exit(0); } system("cls"); limparBuffer(); for(int i = 0;i < numMoradores;++i){ printf("\t# Iniciar processo de cadastro de %i moradores #\n",numMoradores); printf("\n# Cadastrando o %i morador #\n",i+1); printf("Nome:"); fgets(cadastro[i].NOME,MAX_STRING,stdin); printf("(0-Solteiro 1-Casado)Estado Civil:"); scanf("%i",&cadastro[i].ESTCIVIL); limparBuffer(); printf("Data de Nascimento:\n"); printf("Dia:"); scanf("%i",&cadastro[i].NASC.dia); printf("Mes:"); scanf("%i",&cadastro[i].NASC.mes); printf("Ano:"); scanf("%i",&cadastro[i].NASC.ano); limparBuffer(); printf("Local de Nascimento:"); fgets(cadastro[i].LOCALNASC,MAX_STRING,stdin); printf("RG:"); scanf("%i",&cadastro[i].RG); printf("Telefone:"); scanf("%i",&cadastro[i].FONE); printf("Endereco:\n"); limparBuffer(); printf("Cidade:"); fgets(cadastro[i].END.CIDADE,MAX_STRING,stdin); limparBuffer(); printf("Bairro:"); fgets(cadastro[i].END.BAIRRO,MAX_STRING,stdin); limparBuffer(); printf("CEP:"); scanf("%i",&cadastro[i].END.CEP); limparBuffer(); printf("Rua:"); fgets(cadastro[i].END.RUA,MAX_STRING,stdin); limparBuffer(); printf("Numero:"); scanf("%i",&cadastro[i].END.NUM); limparBuffer(); printf("Empresa:"); fgets(cadastro[i].EMPRESA,MAX_STRING,stdin); limparBuffer(); printf("Funcao:"); fgets(cadastro[i].FUNCAO,MAX_STRING,stdin); limparBuffer(); system("cls"); } printf("\t\tCadastro salvo com sucesso!\n"); system("pause"); system("cls"); main(); } void limparBuffer(){ char c; while((c = getchar())!= '\n'&& c!= EOF); }
  23. Boas a todos, estou com problemas em fazer um trabalho em linguagem c que consiste na criação de um armazém usando listas duplamente ligadas. Para isso eu criei duas estruturas e ao criar a função para escrever a lista o programa vai a baixo, também estou com dois warnings no programa que não consigo tirar. desde já obrigado pela disponibilidade vou publicar aqui o código para ver se alguém me consegue ajudar! typedef struct no_produto { char nome[30],marca[30]; float preço; int dia,mes,ano,quantidade; }produto; typedef struct no_lista { produto *info; struct lista *seg; struct lista *ant; }lista; Funçoes lista *mem_lista() //alocar memoria para a lista { lista *mem; if((mem = (lista*)malloc(sizeof(lista))) == NULL) { printf("\nMemoria insuficiente"); } return mem; } produto *mem_produto() alocar memoria para a estrutura do produto { produto *mem; if((mem = (produto*)malloc(sizeof(produto))) == NULL) { printf("\nMemoria insuficiente"); } return mem; } lista *criarlista() //criar a lista { lista *l = mem_lista(); l->seg = NULL; l->ant = NULL; l->info = NULL; return l; } void insere_inicio_Lista (lista *l) // inserir um produto no inicio da lista { lista *aux_lista; produto *aux; int testeint; float teste; assert (l != NULL); aux_lista = mem_lista(); aux=mem_produto(); printf("\nQual o nome do produto :\n "); gets(aux->nome); while (strlen(aux->nome) == 0) { fflush(stdin); system("cls"); printf("\nIntroduziu um nome vazio!\n"); printf("\nDe o nome do ingrediente: \n"); gets(aux->nome); } strupr(aux->nome); //passar nome para maiusculas fflush(stdin); system("cls"); printf("\nQual a marca do produto :\n "); gets(aux->marca); while (strlen(aux->marca) == 0) { fflush(stdin); system("cls"); printf("\nIntroduziu uma marca invalida!\n"); printf("\nDe o nome da marca: \n"); gets(aux->marca); } strupr(aux->marca); //passar marca para maiusculas fflush(stdin); system("cls"); do { teste=0; printf("\nDe o preço do produto: \n"); teste=scanf("%f",&aux->preço); scanf("%*[^\n]"); scanf("%*c"); fflush(stdin); system("cls"); if(aux->preço<=0) printf("\nERRO! O preço deve ser positivo!\n"); }while((teste==0)||(aux->preço<=0)); do { teste=0; printf("\nDe a quantidade que pretende inserir: \n"); testeint=scanf("%d",&aux->quantidade); scanf("%*[^\n]"); scanf("%*c"); fflush(stdin); system("cls"); if(aux->quantidade<=0) printf("\nERRO! A quantidade deve ser positiva!\n"); }while((testeint==0)||(aux->quantidade<=0)); aux_lista->info = aux; aux_lista -> seg = l; aux_lista -> ant = NULL; l -> info ++; } void escreve_Lista(lista *l) //escrever lista { lista *aux=l->info; while (aux != NULL) { printf("\n"); printf("\nSeccao do produto %s", aux->info->nome); printf("\nMarca do produto %s", aux->info->marca); printf("\nPreco por unidade %0.2f ", aux->info->preço); printf("\nUnidades inseridas %d ", aux->info->quantidade); printf("\n"); aux=aux->seg; } }
  24. Boa noite, sou novo aqui no fórum, mas já fiz várias pesquisas e ainda não achei o que preciso.Faço 2° período de Desenvolvimento de Sistemas, estou querendo pegar uma bolsa de iniciação científica na área de desenvolvimento (nada de infra), programar é o que realmente gosto. Tava pensando em desenvolver um framework do tipo Cython, algo que, mesclasse a facilidade do programar em Python com o poder de manipulação de memória de C. Mas conversando com um amigo mais experiente, ele falou que isso é muito avançado, e sou muito verde ainda. Não quero dar essa ideia pro professor da pesquisa e acabar perdido.Vocês conhecem algum tópico que seja tendência na área de programação, alto nível de preferência, e que seja relativamente interessante pra alguém iniciante/intermediário fazer uma pesquisa? Programo em Python, C, Java e PHP. Tava pensando em Data Mining com Python, mas não tenho certeza.Então, sugestões?Desde já, obrigado pela ajuda.
  25. Olá pessoal, estou trabalhando em programa de lista técnica de celulares. Falta apenas uma função, que a função alterar dados de um celular. Já tentei fazer isso utilizando fseek, utilizando algo como renomear arquvos mas não deu certo, meu professor deu uma dica para dividir sub-menus e depois usar o strcpy, também tentei mas não consegui... Penso que strcpy seria uma boa maneira, mas sério não consigo utilizar, se vocês puderem me ajudar fico grata. Abaixo colocarei o código a titulo de informação, vocês talvez encontraram erros nele... Mas minha maior preocupação é sobre como alterar esses benditos dados de um celular. [code] #define MAX 100 #include <stdio.h> #include <stdlib.h> #include <string.h> struct celular { char marca[15]; char modelo[25]; char processador[10]; char memoria [8]; char tela [4]; char inter [4]; char sisopera [15]; char valor [10]; }; typedef struct celular TCelular; struct listaDeCelulares { unsigned ncel; // Número de celulares na lista TCelular celulares[MAX]; }; typedef struct listaDeCelulares TListaCelulares; void mostreCelular(TCelular cel) { printf("%-12s",cel.marca); printf("%-15s",cel.modelo); printf("%-8s",cel.processador); printf("%-7s",cel.memoria); printf("%-4s",cel.tela); printf("%-4s",cel.inter); printf("%-15s",cel.sisopera); printf("%-9s",cel.valor); printf("\n"); } void mostreListaDeCelulares(TListaCelulares *lis) { int i; printf("\n\n ---------------------- Lista de Celulares ----------------------------\n"); printf("\n"); printf(" MARCA-------MODELO---------PROCES.-MEM.--TELA-NET-S.O.-----------VALOR\n"); printf("\n"); for(i=0; i<lis->ncel; i++) { printf(" "); mostreCelular(lis->celulares); printf("\n"); } printf("\n\n"); } int buscaCelular(TListaCelulares *lis, TCelular cel) { int i; for(i=0; i<lis->ncel; i++) if(strcmp(cel.modelo,lis->celulares.modelo) == 0) printf("\n"); return i; return -1; } int buscaCelularmodelo(TListaCelulares *lis, TCelular cel) { int i; for(i=0; i<lis->ncel; i++) if(strcmp(cel.modelo,lis->celulares.modelo) == 0) mostreCelular(lis->celulares); printf("\n"); return i; return -1; } int buscaCelularmarca(TListaCelulares *lis, TCelular cel) { int i; for(i=0; i<lis->ncel; i++) if(strcmp(cel.marca,lis->celulares.marca) == 0) mostreCelular(lis->celulares); printf("\n\n"); return i; return -1; } int buscaCelularinternet(TListaCelulares *lis, TCelular cel) { int i; for(i=0; i<lis->ncel; i++) if(strcmp(cel.inter,lis->celulares.inter) == 0) mostreCelular(lis->celulares); printf("\n\n"); return i; return -1; } void insereCelular(TListaCelulares *lis, TCelular cel) { lis->celulares[lis->ncel] = cel; lis->ncel++; } int ordenaMarca(const void *a, const void *b) { TCelular *ca = (TCelular *) a; TCelular *cb = (TCelular *) b; return strcmp(ca->marca,cb->marca); } int ordenaValor(const void *a, const void *b) { TCelular *ca = (TCelular *) a; TCelular *cb = (TCelular *) b; return strcmp(ca->valor,cb->valor); } int ordenaProcessador(const void *a, const void *b) { TCelular *ca = (TCelular *) a; TCelular *cb = (TCelular *) b; return strcmp(ca->processador,cb->processador); } TCelular removeCelular(TListaCelulares *lis, int ind) { int i; TCelular res = lis->celulares[ind]; for(i=ind; i<lis->ncel-1; i++) lis->celulares = lis->celulares[i+1]; lis->ncel--; return res; } char menu() { printf("******************************\n"); printf("* Ficha T%ccnica de Celulares *\n",130); printf("******************************\n\n"); printf(" 1 - BUSCAR celular pela Marca\n"); printf(" 2 - BUSCAR pela Tecnologia de Internet (3G ou 4G)\n"); printf(" 3 - INSERIR celular\n"); printf(" 4 - APAGAR celular\n"); printf(" 5 - MOSTRAR celulares ordenados pela Marca\n"); printf(" 6 - MOSTRAR celulares ordenados pelo Valor\n"); printf(" 7 - MOSTRAR celulares ordenados pelo Processador\n"); printf(" 8 - EDITAR dados de um celular"); printf("\n 0 - SAIR do aplicativo\n"); printf("\n Escolha uma op%c%co: ",135,198); fflush(stdin); return getchar(); } int main() { TListaCelulares liscel; liscel.ncel = 0; TCelular cel; int rb; int alterado = 0; char op2 = 'A'; char op = 'A'; FILE *fp; fp = fopen("Celulares.arq","rb"); if(fp != NULL) { fread(&liscel.ncel,sizeof(unsigned),1,fp); fread(liscel.celulares,sizeof(TCelular),liscel.ncel,fp); //fread(&liscon,sizeof(TListaContatos),1,fp); } fclose(fp); while(op != '0') { op = menu(); switch(op) { fflush(stdin); case '1': printf("\n\n **** Filtrar celulares pela marca ****\n"); printf("\n Marca: "); fflush(stdin); gets(cel.marca); printf("\n\n-------------Lista de Celulares Filtrados pela Marca--------------\n"); printf("MARCA-------MODELO---------PROCES.-MEM.--TELA-NET-S.O.-----------VALOR\n"); rb = buscaCelularmarca(&liscel,cel); if(rb < 0) printf("\n **** Celular com esta marca n%co existe ****\n",198); printf("\n\n"); break; case '2': printf("\n\n **** Filtrar celulares pela Tecnologia de Iternet (3G ou 4G) ****\n"); printf("\n Tecnologia de Internet: "); fflush(stdin); gets(cel.inter); printf("\n\n------------Lista de Celulares Filtrados pela Internet------------\n"); printf("MARCA-------MODELO---------PROCES.-MEM.--TELA-NET-S.O.-----------VALOR\n"); rb = buscaCelularinternet(&liscel,cel); if(rb < 0) printf("\n **** Celular com esta tecnologia de internet n%co existe ****\n",198); printf("\n\n"); break; case '3': fflush(stdin); printf("\n\n --- Cria novo celular ---\n"); printf(" Modelo: "); gets(cel.modelo); rb = buscaCelular(&liscel,cel); // if(rb >= 0) // printf("\n **** Celular existente ****\n\n"); // else { printf("\n\n"); printf(" Marca : "); gets(cel.marca); printf(" Modelo : "); gets(cel.modelo); printf(" Processador : "); fflush(stdin); gets(cel.processador); printf(" Memoria : "); gets(cel.memoria); printf(" Tela : "); gets(cel.tela); printf(" Tecnologia de Internet: "); gets(cel.inter); printf(" Sistema Operacional : "); gets(cel.sisopera); printf(" Valor : "); gets(cel.valor); while(op2!='s' && op2!='S' && op2!='n' && op2!='N') { printf("\n Salvar celular? (s/n): "); fflush(stdin); op2 = getchar(); if(op2=='S' || op2=='s') { alterado = 1; insereCelular(&liscel,cel); printf("\n\n **** Celular criado ****\n\n"); } else if(op2!='N' && op2!='n') printf("\n\n **** Pressione S ou N ****\n\n"); } } op2 = 'A'; break; case '4': fflush(stdin); printf("\n\n **** Apagar celular ****\n"); printf(" Modelo: "); gets(cel.modelo); rb = buscaCelular(&liscel,cel); if(rb < 0) printf("\n **** Celular n%co existe ****\n",198); else { printf(" Excluir %s? (S/N): ",cel.modelo); op2 = getchar(); if(op2=='s' || op2=='S') { removeCelular(&liscel,rb); alterado = 1; } } printf("\n\n"); break; case '5': qsort(liscel.celulares,liscel.ncel,sizeof(TCelular),ordenaMarca); mostreListaDeCelulares(&liscel); break; case '6': qsort(liscel.celulares,liscel.ncel,sizeof(TCelular),ordenaValor); mostreListaDeCelulares(&liscel); break; case '7': qsort(liscel.celulares,liscel.ncel,sizeof(TCelular),ordenaProcessador); mostreListaDeCelulares(&liscel); break; case '8': printf("\n\n"); case '0': break; default: printf("\n\n **** Entrada invalida ****\n\n"); } } if(alterado) { printf("\n\n Arquivo alterado. Deseja salvar as altera%c%ces? (S/N): ",135,228); fflush(stdin); op2 = getchar(); if(op2=='S' || op2=='s') { fp = fopen("Celulares.arq","wb"); fwrite(&liscel.ncel,sizeof(unsigned),1,fp); fwrite(liscel.celulares,sizeof(TCelular),liscel.ncel,fp); //fwrite(&liscon,sizeof(TListaContatos),1,fp); fclose(fp); printf("\n **** O arquivo foi salvo ****\n"); } } printf("\n"); return 0; } [/code]
×
×
  • Criar Novo...