Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.

Pesquisar na Comunidade

Mostrando resultados para as tags ''C''.



Mais opções de pesquisa

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Categorias

  • Armazenamento
  • Áudio
  • Energia
  • Entrada
  • Feiras e Eventos
  • Gabinetes
  • Memória
  • Museu
  • Placas-mãe
  • Portáteis
  • Processadores
  • Programas
  • Rádio CdH
  • Redes
  • Refrigeração
  • Smartphones
  • Tablets
  • Vídeo
  • Outros

Categorias

  • Blog

Categorias

  • Armazenamento
  • Áudio
  • Câmeras
  • Computadores
  • Consoles
  • Eletrônicos
  • Energia
  • Entrada
  • Gabinetes
  • Impressão
  • Jogos
  • Memória
  • Placas-mãe
  • Portáteis
  • Processadores
  • Programas
  • Redes
  • Refrigeração
  • Smartphones
  • Tablets
  • Vídeo
  • Outros

Categorias

  • Livros disponíveis
  • Livros esgotados

Categorias

  • Cursos

Fóruns

  • Mensagens do Clube do Hardware
    • Regras gerais
    • Boletins do Clube do Hardware
    • Notícias da administração
  • Hardware
    • Recomendações de computadores
    • Placas de vídeo
    • Placas-mãe e chipsets
    • Processadores
    • Problemas de gargalo e desempenho
    • Memórias
    • Armazenamento
    • Refrigeração e superaquecimento
    • Fontes e energia
    • Gabinetes e casemods
    • Placas de som e áudio on-board
    • Periféricos
    • Mac
    • Overclock
    • Hardware - outros
  • Computação móvel
    • Notebooks
    • Tablets
    • Smartphones e apps
  • Redes e Internet
    • Redes e Internet
    • Hospedagem de sites e registro de domínios
  • Segurança da informação
    • Remoção de malware
    • Dúvidas sobre invasões e infecções
    • Programas de proteção
  • Programação e desenvolvimento
    • Java
    • C/C#/C++
    • Pascal/Delphi
    • .NET
    • Bancos de dados
    • Programação web
    • Programação - iniciantes
    • Programação de microcontroladores
    • Programação - outros
  • Software
    • Jogos
    • Pacotes de escritório
    • Computação distribuída (Folding@Home, Bitcoin etc.)
    • Virtualização
    • Design, animação e tratamento de imagens
    • Edição de áudio e vídeo
    • Programas
  • Sistemas Operacionais
    • Recomendação de sistemas operacionais
    • Windows
    • GNU/Linux, BSD, Unix-like e software livre
    • Mac OS
  • Eletrônicos
    • Equipamentos de som, home theaters e gravadores de mesa
    • Televisores e projetores
    • Câmeras e filmadoras
    • Players portáteis
    • Consoles (videogames)
    • GPS
    • Telefonia fixa
    • Eletrônica
    • Retrocomputação
  • Outros
    • Recomendações de serviços e lojas
    • Preços e promoções
    • Notícias
    • Bolsa de empregos, certificações e mercado de trabalho
    • "Causos"
    • Encontros de usuários
    • Feira do Rolo
  • Clube do Hardware
    • Comentários, elogios, críticas, sugestões e questões sobre o Clube do Hardware
    • Comentários de artigos
    • Fórum para testes de funcionalidades

Categorias

  • Hardware
  • Redes
  • Eletrônica
  • Sistemas operacionais

Encontrado 1.112 registros

  1. pessoal estou usando esse codigo para controlar o pwm. ex: EEPROM.write(2,200 ); }else if(horas == 21){ EEPROM.write(2,170 ); }else if(horas == 21 && minutos == 30){ na parte que uso a hora para mudar o pwm ele muda beleza, mas quando acrescento minutos ele nao muda, so muda pra hora seguinte. alguem poderia me ajudar ? todo o codigo esta no arquivo. codigo.txt
  2. Eu peguei essa questão como exercício para tentar resolver, mas estou com dificuldade na solução, tenho uma prova em que vou ter que responder questões similares; Estou usando o DEV-C++, e estou estudando linguagem C, peguei do livro que vou deixar em anexo, a questão se encontra no cap 06 - pag 210 - questão 09. Q-09-faça um programa que carregue uma matriz 3x3 com números reais e receba um valor, número digitado pelo usuário, calcule e mostre a matriz resultante da multiplicação do número digitado por elemento da matriz. Comecei como o code mostra abaixo, mas não sei como devo prosseguir. #include <stdio.h> #include <locale.h> main(){ setlocale(LC_ALL,""); float matriz[3][3], i, j, multi; printf("Informe os números da matriz 3x3\n"); for(i=0; i<3; i++) for(j=0; j<3; j++){ printf("Elemento (%f,%f) da matriz: ", i+1, j+1); } } LivroCdeAnaFernandaAscencio.pdf
  3. Bom dia. Como vão? Estava a resolver um exercício que pedia que criasse dois vetor, e um deles deve conter o fatorial do outro. Ja resolvi problemas de fatorial. Ja ordenei um vetor (dentro de uma funcao por meio de ponteiro). Ai achei que juntando algumas coisas que fiz nesses exercicios conseguiria resolver esse outro. Acho que deva ser algum detalhe que esta passando despercebido. Se puderem da uma olhada no codigo, agradecido. /**6. Faça um procedimento que recebe 2 vetores A e B de tamanho 10 de inteiros, por parâmetro. Ao final do procedimento B deve conter o fatorial de cada elemento de A. O vetor B deve retornar alterado. */ #include <stdio.h> main(){ int i, vet[5], vet2[5]; printf("Entre com os valores do vetor.\n"); for(i=0;i<5;i++){ printf("Vetor [%d]: ", i); scanf("%d", &vet[i]); } printf("\n\nInformamos que o valor do vetor 1 foi copiado para o vetor 2.\n"); for(i=0;i<5;i++){ vet2[i]=vet[i]; } int mudar(int *vet2); printf("\nO vetor de fatorial e o seguinte.\n"); for(i=0;i<5;i++){ printf("Vetor [%d] : %d.\n", i, vet2[i]); } return 0; } int mudar(int *vet2){ int i, j=1, num; for(i=0;i<5;i++){ num=vet2[i]; j=1; for(num=num;num>=1;num=num-1){ j=j*num; } vet2[i]=j; } }
  4. Olá, estou tentando fazer um triângulo de altura n e base 2n - 1 de forma que ele pareça com isso, com n = 5: * *** ***** ******* ********* Podem me ajudar? Eis até onde consegui fazer: #include <stdio.h> int main() { int n, alt, lar; scanf("%d", &n); for (alt = 1; alt <= n; alt++) { for (lar = 1; lar <= (2*alt - 1); lar++) { printf("* "); } printf("\n"); } return 0; }
  5. Olá, sou novo no fórum e também na programaçao usando threads. É o seguinte, estou fazendo um programinha de chat, cliente/servidor, segundo o que foi explicado em sala, a forma que está o programa, ele gera a cada conexão threads filhas para gerenciar os clientes, assim eu estou tentando me desconectar com um único cliente, mas o servidor cai. Então queria saber se é possível eu fechar só uma filha thread sem interferir em outras, já que quando faz o pthread_self para cada nova instância ele é diferente, mas o PID não? Segue anexado os arquivos de servidor/cliente. cliente.txt servidor.txt
  6. meu programa da winmain16 quando executa, o que faço?? #include <stdio.h> #include <stdlib.h> int i,k; const int dimencao = 100; const int largura = 100; void Tela(){ for(i=0; i < largura; i++){ printf("%c",219); } printf("\n"); for(i=0; i < dimencao; i++){ for(k=0; k < largura; k++){ if (k == 0){ printf("c",219); }else if(k == largura -1){ printf("%c",219); }else{ printf(" "); } } printf("\n"); for( i = 0; i < largura; i++){ printf("%c",219); } printf("\n"); } int main(){ Tela(); } return 0; }
  7. Boa noite, estava tentando implementar um programa que seja capaz de gerar de forma recursiva um labirinto, como descrito pelo Recursive Division Method. No entanto, quando chamo a recursividade está me dando FLOATING POINT EXCEPTION. Poderiam me dar uma dica nesse problema? Aqui está o meu código: #include <stdio.h> #define HORIZONTAL 1 #define VERTICAL 2 const int ROWS = 5; const int COLS = 5; int main() { int chamber[ROWS][COLS]; for (int i = 0; i < ROWS; i++) { for (int j = 0; j < COLS; j++) { chamber[i][j] = 0; } } addOuterWalls(chamber, sizeof(chamber)/sizeof(chamber[0]), sizeof(chamber[0])/sizeof(chamber[0][0])); addEntrance(chamber, sizeof(chamber)/sizeof(chamber[0])); addExit(chamber, sizeof(chamber)/sizeof(chamber[0])); addInnerWalls(chamber, 1, 1, sizeof(chamber)/sizeof(chamber[0]) - 1, sizeof(chamber[0])/sizeof(chamber[0][0]) - 1); for (int i = 0; i < ROWS; i++) { for (int j = 0; j < COLS; j++) { printf("%d ", chamber[i][j]); } printf("\n"); } return 0; } void addOuterWalls(int chamber[ROWS][COLS], int rows, int cols) { for (int i = 0; i < rows; i++) { if (i == 0 || i == (rows - 1)) { for (int j = 0; j < cols; j++) { chamber[i][j] = 1; } } else { chamber[i][0] = 1; chamber[i][cols - 1] = 1; } } } void addEntrance(int chamber[ROWS][COLS], int rows) { int random = 0 + (rand() % ((rows - 1) - 0) + 1); chamber[0][random] = 2; } void addExit(int chamber[ROWS][COLS], int rows) { int random = 0 + (rand() % ((rows - 1) - 0) + 1); chamber[rows - 1][random] = 2; } void addInnerWalls(int chamber[ROWS][COLS], int startRow, int startCol, int endRow, int endCol) { int orientation, randR, randC, i, j, randPR, randPC; if (endRow < 2 || endCol < 2) { return; } if (endCol < endRow) { orientation = HORIZONTAL; } else if (endCol > endRow) { orientation = VERTICAL; } else { orientation = 0 + (rand() % (1 - 0) + 1) == 0 ? HORIZONTAL : VERTICAL; } randR = startRow + (rand() % ((endRow - 1) - startRow) + 1); randC = startCol + (rand() % ((endCol - 1) - startCol) + 1); if (orientation == HORIZONTAL) { for(i = startRow; i < endRow; i++) { if(i == randR) { randPR = startRow + (rand() % ((endRow - 1) - startRow) + 1); for(j = startCol; j < endCol; j++) { if(j == randPR) { chamber[i][j] = 8; } else { chamber[i][j] = 1; } } } } addInnerWalls(chamber, startRow, startCol, randR - 1, endCol); addInnerWalls(chamber, randR + 1, startCol, endRow, endCol); } else { for(j = startCol; j < endCol; j++) { if(j == randC) { randPC = startCol + (rand() % ((endCol - 1) - startCol) + 1); for(i = startRow; i < endRow; i++) { if(i == randPC) { chamber[i][j] = 8; } else { chamber[i][j] = 1; } } } } addInnerWalls(chamber, startRow, startCol, randC - 1, randC - 1); addInnerWalls(chamber, randC + 1, randC + 1, endRow, endCol); } } Grato!
  8. Estou fazendo um programa que ao digitar uma frase, caso tenha as letras "porque" juntas ou só "R" essa palavra seja deletada e o cursor volte as casas. Pois ao digitar "PQa" ao invés de simplesmente mudar ficar " a" teria que ficar "a" como inicio da frase. Aqui está o meu código: #include <stdio.h> #include <stdlib.h> #include <locale.h> main () { setlocale(LC_ALL,"portuguese"); char linha[100]; int l; puts("Língua do P"); puts(""); printf("Digite a frase: "); fgets(linha, 100, stdin); for(l = 0; l < 100; l++) { if(linha[l] == 'P' && linha[l + 1] == 'Q') { linha[l] = ' '; linha[l + 1] = ' '; } else if(linha[l] == 'R') { linha[l] = ' '; } } printf("frase: %s", linha); }
  9. Alguem me ajuda a fazer uma funcao que remova numeros e simbolos de uma string e converta tudo para maiusculo pfv
  10. Olá galera! Estou tendo um dificuldades pra solucionar esse problema.. a ideia principal do código é receber n números de emoticons e m textos , e então procurar os emoticons nos textos e contar quantas vezes eles aparecem.. o código está funcional pro caso do usuário que entrar apenas 1 emoticon por texto.. logo , se entrar 2 ou mais , ele irá contar como apenas 1.. Estou tendo dificuldade com isso , por envolver "vetor de string" , alguém pode me ajudar ? #include <stdio.h> #include <string.h> #define MAX 100 #define MIN 0 #define START 1 int main(int argc, char **argv) { char *ptr,emot[MAX][20],text[MAX][80]; int n,m,cont; int len; cont = MIN ; n=m=START; fflush(NULL); while(n != MIN && m != MIN) // esse loop é apenas para que 0 seja o critério de parada { scanf("%d",&n); scanf("%d",&m); fflush(NULL); for (int i = 0; i <= n; i++) { fgets(emot[i],MAX,stdin); } for (int k = 0; k < m; k++) { fgets(text[k],MAX,stdin); for (int j = 1; j <=n; j++) { ptr = strstr(text[k],emot[j]); /* a minha ideia de solucionar começa aqui , utilizei a função * strstr que direciona o ponteiro para a primeira posição a * qual foi encontrada a substring dentro da string * porém ele procura apenas 1 vez portanto , se tiver mais * emoticons dentro da string , ele não irá encontrar.. */ if(ptr!=NULL) { cont ++; } } } printf("%d\n",cont); cont=0; } return 0; }
  11. Considere o trecho de código abaixo a uma fila de atendimento bancário ... typdef struct cliente { char nome[64]; int conta; struct cliente *proximo; }tpCliente; ... void novoCliente(tpCliente *cabeca, tpCliente **cliente); void atendeCliente(tpCliente *cabeca, tpCliente **cliente); ... 1)Implemente a função novoCliente, que tem por objetivo colocar o cliente no fim da fila de atendimento bancário (o ultimo cliente a entrar na fila deve ser o ultimo a ser atendido). Utilize o protótipo definido acima; 2)Implemente a função atendeCliente, que tem por objetivo retirar da fila de atendimento o primeiro cliente e devolve-lo para função chamadora através do ponteiro **cliente. Utilize o protótipo definido acima; Usei a função de inserir na direita, ou seja, no final de uma lista encadeada no ex 1 tpCliente* inserir_direita(tpCliente *aux ,int v) { tpCliente *primeiroNo = aux; tpCliente *novoNo = (tpCliente*) malloc (sizeof(tpCliente)); novoNo->valor = v; novoNo->proximo = NULL; if(aux != NULL) { while(aux->proximo != NULL){ aux = aux->proximo; } aux->proximo = novoNo; return primeiroNo; }else{ return novoNo; } } e de remover primeiro no ex 2 void removerPrimeiro() { if (primeiroNo != NULL) { tpCliente *no = primeiroNo; primeiroNo = no->proximo; free(no); } } mas não to sabendo como adaptar para esse exercício com dois ponteiros, qualquer ajuda é bem vinda, agradeco desde ja.
  12. Preciso de ajuda com o seguinte problema: "Na teoria dos sistemas define-se o elemento MINMAX de uma matriz como sendo o maior elemento da linha onde se encontra o menor elemento da matriz. Faça um programa C que carregue uma matriz 4 x 7 com números reais, calcule e mostre seu MINMAX e sua posição (linha e coluna)." O meu problema está sendo na parte de leitura/exibição do bendito elemento MINMAX. o código atualmente está: #include<stdio.h> #define linha 2 #define coluna 2 int main(){ float mat[linha][coluna]; float maior; float menor; int i, j, pos_i, pos_j; printf("Entre com numeros reais:\n\n"); for(i=0; i<linha; i++){ printf("\nlinha [%d]: \n", i); for(j=0; j<coluna; j++){ printf("coluna [%d]: ",j); scanf("%f", &mat[i][j]); if(mat[i][j]<menor) menor=mat[i][j]; pos_i=i; pos_j=j; } } printf("O menor elemento: %f\n", menor); printf("Posicao: [%d][%d]\n", pos_i,pos_j); //exibindo a matriz printf("\n\nSua matriz é:\n\n"); for(i=0;i<linha;i++){ for(j=0;j<coluna;j++){ printf("%.2f ", mat[i][j]); } printf("\n"); } return 0; }
  13. Olá pessoal, estou fazendo um programa que pede a latitude e longitude de uma pessoa, e o programa determina qual o supermercado mais próximo a ela (as coordenadas de 3 supermercados já estão inseridas no programa). A lógica matemática eu já consegui desenvolver: eu dividi a latitude pela longitude de cada mercado e isso me deu um valor que é subtraído pelo valor da divisão da latitude pela longitude inserido pelo usuário. Desse modo, ficou determinado que o valor mais próximo de Zero é o mais próximo da pessoa. O meu problema é na hora de determinar qual é o supermercado mais próximo da pessoa. Exemplo supondo uma linha no eixo X que vai de menos infinito a mais infinito: Mercado 01 - ponto 1 Casa da pessoa - ponto 1.3 Mercado 02 - ponto 2 Mercado 03 - ponto 3 Aqui, o mercado mais próximo da pessoa é o Mercado 01, que está há 0.3 metros de sua casa, em relação ao Mercado 02, que está há 0.7 e ao Mercado 03, que está há 1.7 metros. Minha única dúvida é (se tiver como), comparar os 3 valores e determinar o valor mais próximo do já estabelecido.
  14. Boa noite, gostaria de saber de algum site que ofereça um curso GRATUITO e com CERTIFICADO para linguagem C. Tem o udemy que oferece cursos super baratos, mas gostaria de saber se tem algum site que tenha gratuito e com certificado.
  15. Pessoal, sou novo aqui então não sei se este é o tópico certo para este tipo de pergunta. Mas, eu preciso de ajuda com um algoritmo que eu fiz para codificar uma palavra de acordo com a cifra de césar. A intenção é fazer sem ultilizar a tabela ASCII. O código está funcionando somente no primeiro elemento do vetor, os elementos seguintes dão simbolos aleatórios. #include<stdio.h> #include<string.h> int main() { int tam,tam2,i=0,j,k, n, l, c; char *maiu = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; char palavra[50]; scanf("%d", &n); while(i < n) { scanf("%s", palavra); scanf("%d", &k); tam = strlen(palavra); tam2 = strlen(maiu); char codi[tam]; for(l=0;l < tam; l++) { for(j=0;j < tam2; j++) { if(palavra[i] == *(maiu+j)) { c=j+k; if(c>=26) { c=c-26; } codi[i]=*(maiu+c); } } } printf("%s\n%s\n", palavra, codi); i++; } return 0; }
  16. olá pessoal, estou com uma duvida na minha programação. tenho que fazer uma programação em C que deve receber o nome e valor de 5 frutas e depois mostrar o valor e o nome da fruta menor e maior. se puderem me ajudar. agradeço desde já. #include<stdio.h> int main() { float num, maior = 0, menor = 0, y=0; char fruta; printf("Digite a fruta: "); fflush(stdin); scanf("%s",&fruta); printf("Digite o valor: "); fflush(stdin); scanf("%f",&num); menor = num; maior = num; for( y = 1; y < 5; y++ ){ printf("Digite a fruta: "); fflush(stdin); scanf("%s",&fruta); printf("Digite o valor: "); fflush(stdin); scanf("%f",&num); if(num > maior) maior = num; if(num < menor) menor = num; } printf ("A fruta %s %.2f tem o maior valor\n",fruta,maior); printf ("A fruta %s %.2f tem o menor valor\n",fruta,menor); return 0; }
  17. #include <stdio.h> #include <stdlib.h> #include <strings.h> #define tamanho 5 struct contatos { int codigo; char nome[35], telefone[13], endereco[110]; }; int main() { int informe, cont = 1, i; struct contatos pessoa[tamanho]; do{ printf("============= \n"); printf("ESCOLHA UMA OPCAO \n"); printf("1: Novo Cadastro \n"); printf("2: LISTA \n"); printf("0: PARA SAIR \n\n"); scanf(" %d", &informe); fflush(stdin); system("cls"); switch(informe) { case 1: if(cont <= tamanho) { printf("CADATRO \n"); printf("\n codigo:%d \n", cont); printf("\nInforme nome:"); fgets(pessoa[cont].nome, 35, stdin); fflush(stdin); printf("informe endereço:"); fgets(pessoa[cont].endereco, 110, stdin); fflush(stdin); printf("\nInforme Telefone:"); fgets(pessoa[cont].telefone, 13, stdin); fflush(stdin); cont++; fflush(stdin); system("cls"); }else{ printf("AGENDA LOTADA"); } break; case 2: printf("LISTA DE CONTATOS \n"); for(i = 1;i < cont;i++) { printf("Codigo:%d\n", i); printf("\nnome:%s\n",pessoa.nome); printf("endereço:%s\n", pessoa.endereco); printf("telefone:%s\n", pessoa.telefone); printf("\n=========="); } break; case 0: printf("ENCERRAMENTO DO programa \n"); break; default: printf("COMANDO INVALIDO \n"); } } while(informe != 0); return 0; } adicionado 0 minutos depois é o seguinte... no inicio do programa aparece o menu para escolher umas das 3 opções ( 1, 2 ou 0). quando eu faço o cadastro de alguma pessoa, ele retorna para o menu. pórem na segunda vez que caí no menu, se eu digitar qualquer coisa ele entra na opção de cadastro(case1).
  18. Exercico _> Receber 10 numeros onde ,todos os numeros pares digtados devem ser multiplicado por tres e os impares serem somados por mais um . NO meu código abaixo só o meu primeiro valor esta sendo sendo informado corretamente, o resto dos valores ele repete . Alguém pode me dar uma dica ? Obrigado ! #include <stdio.h> #include <stdlib.h> #include <locale.h> int main() { setlocale(LC_ALL, "Portuguese"); int vet[4]; int count; for ( int count=0; count<4; count++){ printf("Entre com um num:"); scanf("%d",&vet[count]); } if (vet[count] % 2 == 0){ vet[count] = vet[count] * 3; }else{ vet[count] = vet[count] + 1; } for ( count=0; count<4; count++){ printf("Valor e %d \n",vet[count]); } system("pause"); }
  19. Estava treinando execício básico em C sobre matriz e ao final da execução do programa (antes de imprimir a última mensagem na tela), me deparo com o seguinte erro: Segmentation fault (core dumped). Queria uma ajudinha para saber o que ocasionou, e como consertar. Fiz meu código que ficou: /*Encontre o maior número em uma matriz de 5 linhas e 10 colunas*/ #include<stdio.h> int main(){ int i, j, maior, linha = 2, coluna = 2; int matriz[linha][coluna]; int posicaoI, posicaoJ; printf("\nInforme os inteiros:\n\n\n"); for(i=0; i<linha; i++){ printf("Informe os numeros da %dº linha:\n", i+1); for(j=0; j<coluna; j++){ scanf("%i", &matriz[j]); } } maior = matriz[0][0]; posicaoI = posicaoJ = 0; for(i=0; i<linha; i++){ for(j=0; j<coluna; i++){ if(matriz[j] > maior){ maior = matriz[j]; posicaoI = i; posicaoJ = j; } } } printf("O maior valor e: %d na posicao i: %d e j: %d", maior, posicaoI, posicaoJ); return 0; }
  20. Defina uma struct Filme que armazene informações sobre um filme. A struct deve conter os seguintes campos:  Título  Categoria  Ano  Classificação O campo “Classificação” armazena um inteiro de 1 a 5, o qual indica quanto o usuário gosta de tal filme. Considere que quanto maior for o valor do campo “Classificação”, maior é a preferência do usuário pelo filme. Após definir a struct, escreva um algoritmo que leia as informações para N structs Filme e as armazene em um vetor de struct. Em sequência, o programa deve pedir que o usuário informe um número inteiro, o qual indica um nível de classificação X. Então, o programa deve percorrer o vetor de filmes e imprimir todos os campos dos filmes que possuírem classificação maior ou igual ao nível X. //Na hora de executar, ele não me da os dados de todos filmes com classificação maior ou igual e sim apenas da ultima informação dada, se ele é maior ele me da informação, se não ele não me retorna nada e o programa termina. #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct cinema{ char titulo[50]; char categoria[50]; int ano; int clas; }t_cinema; t_cinema filme[100]; int main(){ int i, x, n=1, c=0, j; while(n!=0){ for(i=0; i<n; i++){ strcpy(filme.titulo, "\0"); strcpy(filme.categoria, "\0"); filme.ano = 0000; filme.clas = 0; printf("\n Sobre o Filme \n"); printf("Nome: "); scanf("%s", filme.titulo); printf("Categoria: "); scanf("%s", filme.categoria); printf("Ano: "); scanf("%d", &filme.ano); printf("Classificacao de 1 a 5: "); scanf("%d", &filme.clas); c++; } printf("voce quer continuar? (1) p/ SIM (0) p/ NAO = "); scanf("%d", &n); } printf("\nNivel de classificacao X de 1 a 5: "); scanf("%d", &x); for(j=0; j<c; j++){ if(x <= filme[j].clas){ printf("\n Sobre o Filme: \n"); printf("Nome: %s\n", filme[j].titulo); printf("Categoria: %s\n", filme[j].categoria); printf("Ano: %d\n", filme[j].ano); printf("Classificacao de 1 a 5: %d\n", filme[j].clas); } } return 0; } adicionado 8 minutos depois Resolvido, por causa que eles sempre volta a contagem pra zero no for
  21. #include <stdio.h> #include <stdlib.h> #include <string.h> #include <locale.h> #include <windows.h> typedef struct { int codigo; char tipo [50]; float area; int Ncomodos ; char padrão[50]; float sugerido; float negociado; }imobiliaria; imobiliaria ImoBit[50]; void cadastro(); void pesquisa(); void lista(); void listatipo(); void listapadrao(); void alterar(); void excluir(); FILE* abertura(char l,char caminho[50]) { FILE*fp; if(l=='g') { fp=fopen(caminho,"wb+"); } else if(l=='l') { fp=fopen(caminho,"rb+"); } else fp=fopen(caminho,"ab+"); return fp; } int main(void) { int op; setlocale(LC_ALL,"portuguese"); enum DOS_COLORS { BLACK, BLUE, GREEN, CYAN, RED, MAGENTA, BROWN, LIGHT_GRAY, DARK_GRAY, LIGHT_BLUE, LIGHT_GREEN, LIGHT_CYAN, LIGHT_RED, LIGHT_MAGENTA, YELLOW, WHITE }; textcolor(BLACK); textbackground(WHITE); FILE*fp; fp=abertura('l',"imobiliaria.txt"); if(fp == NULL) { printf("Erro, nao foi possivel abrir o arquivo\n"); fp=abertura('g',"imobiliaria.txt"); } do{ system("cls"); printf("\n-------Bem Vindo a ImoBit-------\n\nDesenvolvido por:\n Amanda de Souza\n João Eduardo\n João Gustavo\n Pedro Augusto\n\n1 - CADASTRAR\n2 - PESQUISAR\n3 - LISTAR\n4 - LISTAR POR TIPO\n5 - LISPAR POR PADRÃO\n6 - ALTERAR\n7 - EXCLUIR\nDigite uma opção:") ; scanf("%d", &op); switch(op){ case 1: cadastro(); break; case 2: pesquisa(); break; case 3: lista(); break; case 4: listatipo(); break; case 5: listapadrao(); break; case 6: alterar(); break; case 7: excluir(); break; default: printf("\nOpção Inválida"); break; } getchar(); getchar(); }while(op != 0); } void cadastro() { system("cls"); int codigo[50],i,op,fp; char tipo [50][50]; float area[50]; int Ncomodos [50]; char padrão[50][50]; float sugerido[50]; float negociado[50]; setlocale(LC_ALL,"portuguese"); { for(i=0;i<50;i++){ printf("\n Insira o código de identificação do imóvel: "); scanf("%d", &codigo); printf("\n Informe o tipo de imóvel (Apartamento ou Casa): "); scanf("%s", &tipo); printf("\n Informe a área construída em M²: "); scanf("%f", &area); printf("\n Informe a quantidade de cômodos: "); scanf("%d", &Ncomodos); printf("\n Qual o padrão de acabamento do imóvel (Popular, Bom, Excelente): "); scanf("%s", &padrão); printf("\n Informe o preço sugerido (em reais) \n R$ "); scanf("%f", &sugerido); ImoBit.codigo = codigo; strcpy(ImoBit.tipo,tipo); ImoBit.area = area; ImoBit.Ncomodos = Ncomodos; strcpy(ImoBit.padrão,padrão); ImoBit.sugerido = sugerido; fwrite(&ImoBit,sizeof(ImoBit),1,fp); printf("\n Se deseja realizar outro cadastro digite 4. \n Para finalizar digite qualquer valor: "); scanf("%d", &op); if (op!=4){ break; } } } if (op!=4) { printf("\n Cadastro finalizado!"); } } void pesquisa() { int op; system("cls"); int pesquisaid,i; do { printf("\nDigite o número de identificação do imóvel:"); scanf("%d", &pesquisaid); for(i=0;i<50;i++) { if (ImoBit.codigo == pesquisaid) { printf("\nCódigo: %d\nTipo: %s\nÁrea: %.2f\nCômodos: %d\nPadrão: %s\nPreço Sugerido: R$%.2f\n",ImoBit.codigo,ImoBit.tipo,ImoBit.area,ImoBit.Ncomodos,ImoBit.padrão,ImoBit.sugerido); } } printf("\nDigite 1 para pesquisar novamente: "); scanf("%d", &op); } while(op==1); } void lista(){ system("cls"); int i; printf("\nLista de Imóveis\n"); for(i=0;i<50;i++){ if (ImoBit.codigo>0){ printf("\n\n----------------------\n"); printf("\nCódigo: %d\nTipo: %s\nÁrea: %.2f\nCômodos: %d\nPadrão: %s\nPreço Sugerido: R$%.2f\n",ImoBit.codigo,ImoBit.tipo,ImoBit.area,ImoBit.Ncomodos,ImoBit.padrão,ImoBit.sugerido); } } } void listatipo() { system("cls"); int i; char tip[20]; printf("\nInforme o tipo desejado:"); scanf("%s", &tip); printf("\nLista dos imóveis do tipo %s\n", tip); for(i=0;i<50;i++) { ImoBit; if (strcmp(ImoBit.tipo,tip)==0 && ImoBit.codigo!=0 ){ printf("\n\n------------------\n"); printf("\nCódigo: %d\nTipo: %s\nÁrea: %.2f\nCômodos: %d\nPadrão: %s\nPreço Sugerido: R$%.2f\n",ImoBit.codigo,ImoBit.tipo,ImoBit.area,ImoBit.Ncomodos,ImoBit.padrão,ImoBit.sugerido); } else if (strcmp(ImoBit.tipo,tip)==0 && ImoBit.codigo==0 ){ printf("\nVAZIO"); break; } } } void listapadrao() { system("cls"); int i; char pad[20]; printf("\nInforme o padrão desejado:"); scanf("%s", &pad); printf("\nLista dos imóveis do tipo %s\n", pad); for(i=0;i<50;i++) { ImoBit; if (strcmp(ImoBit.padrão,pad)==0 && ImoBit.codigo!=0){ printf("\n\n------------------\n"); printf("\nCódigo: %d\nTipo: %s\nÁrea: %.2f\nCômodos: %d\nPadrão: %s\nPreço Sugerido: R$%.2f\n",ImoBit.codigo,ImoBit.tipo,ImoBit.area,ImoBit.Ncomodos,ImoBit.padrão,ImoBit.sugerido); } else if (strcmp(ImoBit.padrão,pad)==0 && ImoBit.codigo==0){ printf("\nVAZIO"); break; } } } void alterar (){ system("cls"); int cod,i; printf("\nInforme o código do cadastro que deseja alterar: "); scanf("%d", &cod); for(i=0;i<50;i++) { if (ImoBit.codigo == cod) { printf("\nCódigo: %d\nTipo: %s\nÁrea: %.2f\nCômodos: %d\nPadrão: %s\nPreço Sugerido: R$%.2f\n",ImoBit.codigo,ImoBit.tipo,ImoBit.area,ImoBit.Ncomodos,ImoBit.padrão,ImoBit.sugerido); printf("\n-------------------------\n"); printf("\n Insira o novo código de identificação do imóvel: "); scanf("%d", &ImoBit.codigo); fflush(stdin); printf("\n Informe o tipo de imóvel (Apartamento ou Casa): "); scanf("%s", &ImoBit.tipo); fflush(stdin); printf("\n Informe a área construída em M²: "); scanf("%f", &ImoBit.area); fflush(stdin); printf("\n Informe a quantidade de cômodos: "); scanf("%d", &ImoBit.Ncomodos); fflush(stdin); printf("\n Qual o padrão de acabamento do imóvel (Popular, Bom, Excelente): "); scanf("%s", &ImoBit.padrão); fflush(stdin); printf("\n Informe o preço sugerido (em reais) \n R$ "); scanf("%f", &ImoBit.sugerido); fflush(stdin); } } } void excluir(){ system("cls"); int cod,i,op; ImoBit ; printf("\nDigite o código do cadastro que deseja excluir: "); scanf("%d", &cod); for(i=0;i<50;i++) { if (ImoBit.codigo==cod){ printf("\nCódigo: %d\nTipo: %s\nÁrea: %.2f\nCômodos: %d\nPadrão: %s\nPreço Sugerido: R$%.2f\n",ImoBit.codigo,ImoBit.tipo,ImoBit.area,ImoBit.Ncomodos,ImoBit.padrão,ImoBit.sugerido); } printf("\n---------------\n"); printf("\nDeseja excluir? (1 - Sim | 2 - Não): "); scanf("%d", &op); if (op == 1){ ImoBit.codigo = 0; break; } else{ break; } } system("cls"); printf("\nCADASTRO EXCLUÍDO COM SUCESSO"); } void textbackground (int iColor) { HANDLE hl = GetStdHandle(STD_OUTPUT_HANDLE); CONSOLE_SCREEN_BUFFER_INFO bufferInfo; BOOL b = GetConsoleScreenBufferInfo(hl, &bufferInfo); bufferInfo.wAttributes &= 0x000F; SetConsoleTextAttribute (hl, bufferInfo.wAttributes |= (iColor << 4)); } void textcolor (int iColor) { HANDLE hl = GetStdHandle(STD_OUTPUT_HANDLE); CONSOLE_SCREEN_BUFFER_INFO bufferInfo; BOOL b = GetConsoleScreenBufferInfo(hl, &bufferInfo); bufferInfo.wAttributes &= 0x00F0; SetConsoleTextAttribute (hl, bufferInfo.wAttributes |= iColor); }
  22. Alocação dinamica de uma string em c. Exercício é o seguinte: Faça um programa que receba do usuário o tamanho de uma string e chame uma função para alocar dinamicamente essa string. Em seguida o usuário deverá informar o conteúdo dessa string. O programa imprime somente as vogais dessa string. O q eu consegui faze até agora: #include <stdio.h> #include <stdlib.h> void alocacao(char *s,int t){ *s = (char*) malloc(t*sizeof(char)); } int main(int argc, char** argv) { char *string; int tamanhostring; int i; printf("tamanho da string?"); scanf("%d", &tamanhostring); alocacao(string,tamanhostring); printf("conteudo da string?"); scanf("%s", &string); for(i=0;i<tamanhostring;i++) { if(string[i]=='a' || string[i]=='e' || string[i]=='i' || string[i]=='o' || string[i]=='u') { printf("%c", string[i]); } } return 0; } Para a execução depois de ler o tamanho da string e da o seguinte [Warning] assignment makes integer from pointer without a cast.
  23. C Compila e para no meio

    #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct futebol{ char nome[100]; int idade; int jogos; int gols; }t_futebol; t_futebol jogador; int main(){ strcpy(jogador.nome, "\0"); jogador.idade = 0; jogador.jogos = 0; jogador.gols = 0; printf("O nome do jogador: "); scanf("[^\n]", jogador.nome); printf("A idade do jogador: "); scanf("%d", &jogador.idade); printf("Numero de jogos do jogador: "); scanf("%d", &jogador.jogos); printf("Numero de gols do jogador: "); scanf("%d", &jogador.gols); return 0; } Executa apenas o jogador.nome e código acaba, alguém sabe o porque?
  24. Gostaria da ajuda dos colegas para terminar meu código para calcular a idade em anos meses e dias #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 dia1, dia2, mes1, mes2, ano1, ano2, ida1, ida2, ida3; printf ("Digite o dia do nascimento: "); scanf ("%d", &dia1); printf ("Digite o mes de nascimento: "); scanf ("%d", &mes1); printf ("Digite o ano de nascimento: "); scanf ("%d", &ano1); printf ("Digite o dia atual: "); scanf ("%d", &dia2); printf ("Digite o mes atual: "); scanf ("%d", &mes2); printf ("Digite o ano atual: "); scanf ("%d", &ano2); ida1 = ano2 - ano1; ida2 = ida1 * 365; ida3 = ida1 * 12; printf (" voce nasceu em: %d/%d/%d\n", dia1,mes1,ano1); printf (" voce tem: %d anos\n", ida2); printf (" sua idade em meses e: %d\n", ida3); printf (" sua idade em anos e: %d\n", ida1); system("PAUSE"); return 0; o código não está retornando o resultado desejado eu queria que ele escrevesse (voce tem 39 anos 4 meses e 25 dias) não sei como fazer esse cálculo e como colocar na função printf sem ter que dividir em 3 comandos.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×