Ir ao conteúdo
  • Cadastre-se

1freakday

Membro Pleno
  • Posts

    670
  • Cadastrado em

  • Última visita

Tudo que 1freakday postou

  1. Daqui a pouco vão apagar esses também, enfim Victor, conseguiu resolver?, pode mandar mensagem privada se quiser
  2. Você tem que cuidar com os parâmetros que serão passados de uma função para outra, se uma é int, não pode passar long int, mesmo que parecidas, eu ate passaria a correção mas estão apagando meus comentário, então boa sorte.
  3. 1freakday

    Jogo da velha

    Bacana, então creio que você poderia declarar a matriz global, e utilizar outras funções para montar o 'mapa', fazer um movimento, e contar placar, exemplo: #include <stdio.h> #include <conio.h> #include <stdlib.h> #define VAZIO 0 #define X 1 #define O 2 int jogo [3][3]; //Como a matriz e global nao precisamos usar como parametro //Vai ser mostrado como esta a atual tabela do jogo, e transformar //os 0,1,2 em vazio, X e O. void montar_jogo(); //Vai alterar a matriz colocando o simbolo: O ou X nas coordenadas x e y void fazer_jogada(int x, y, int simbolo); //Vai verificar as diagonais e horizontais para ver se x ou y ganhou - ou empataram void verificar_jogo();
  4. #include <stdio.h> #include <winsock2.h> int main (){ bool sinal_luz = false; int sec = 0; do{ //60 Segundos while(sec < 60){ system("cls"); printf("%d s -- ",sec); if(sinal_luz) printf("Sinal ativo!\n"); else printf("Sinal inativo!\n"); Sleep(1000); sec++; } //Reseta contador sec = 0; sinal_luz = !sinal_luz; }while(1); return 0; }
  5. #include <stdio.h> #include <stdlib.h> #include <string.h> int numero_sec(const char *); int main (){ char numero[128]; int resultado = 0; printf("Digite um numero: "); scanf("%s",numero); resultado = numero_sec(numero); printf("Resultado: %d\n",resultado); getchar(); return 0; } int numero_sec(const char *num){ register int i,j = -1; int len = strlen(num); char result[len]; result[0] = '\0'; for(i = 0; i < len; i++){ j+=2; if(num[j] == '\0')break; result[i] = num[j]; } result[strlen(result)] = '\0'; return atoi(result); } P.S: na função numero_sec, tem um limite de números a ser recebido na string num, aconselho a substituir a função atoi por um comparador de asci numero.
  6. Se perceber eu tinha colocado, mas problema resolvido de qualquer jeito!
  7. #include <iostream> #include <stdlib.h> using namespace std; class Equipamento{ public: int potencia; int tensão; string nome; float cabo; int disjuntor; Equipamento(int potencia,int tensão,string nome){ this->potencia=potencia; this->tensão=tensão; this->nome=nome; } ~Equipamento(){}; virtual void exibir(){ cout <<"---Equipamentos---"<<endl; cout <<"Nome: "<<nome<<endl; cout <<"tensão: "<<tensão<<"V"<<endl; cout <<"Potencia: "<<potencia<<"W"<<endl; } }; class Geral: public Equipamento{ public: int I=0; Geral(int potencia,int tensão,string nome):Equipamento(potencia,tensão,nome){ } ~Geral(){}; void exibir(){ I=potencia/tensão; if(I<=10){ cabo=2.5; disjuntor=20; } cout <<"---Equipamentos---"<<endl; cout <<"Nome: "<<nome<<endl; cout <<"tensão: "<<tensão<<"V"<<endl; cout <<"Potencia: "<<potencia<<"W"<<endl; cout <<"Cabo: "<<cabo<<"mm quadrado"<<endl; cout <<"Disjuntor: "<<disjuntor<<"A"<<endl; } }; class Especifico: public Equipamento{ public: int comprimento; int I=0; Especifico(int potencia,int tensão,string nome,int comprimento):Equipamento(potencia,tensão,nome){ this->comprimento=comprimento; } ~Especifico(){}; void exibir(){ I=potencia/tensão; if(I>10){ cabo=4; disjuntor=32; } cout <<"---Equipamentos---"<<endl; cout <<"Nome: "<<nome<<endl; cout <<"tensão: "<<tensão<<"V"<<endl; cout <<"Potencia: "<<potencia<<"W"<<endl; cout <<"Comprimento: "<<comprimento<<endl; cout <<"Cabo: "<<cabo<<"mm quadrado"<<endl; cout <<"Disjuntor: "<<disjuntor<<"A"<<endl; } }; class Lista{ private: Equipamento *Equipamentos[1000]; int i=0; public: void transferir(Equipamento *src,Equipamento *dst){ dst = src; } void adicionar(Equipamento *p){ if(i<1000) { Equipamentos[i] = new Equipamento(p->potencia,p->tensão,p->nome); i++; } else { cout<<"Lista cheia"<<endl; } } void exibir(){ int j=0; if(i==0){ cout<<"Nao ha equipamentos na lista"<<endl; } else { cout<<"Exibindo lista de equipamentos"<<endl; for(j=0;j<i;j++){ Equipamentos[j]->exibir(); } } } }; int main() { Lista l; int opcao=0; int i; string nome; int potencia; int tensão; int comprimento; while(opcao!=3){ cout<<"1-lista de equipamentos"<<endl; cout<<"2-adicionar equipamento"<<endl; cout<<"3-fechar tudo"<<endl; cout<<"opcao escolhida: "; cin>>opcao; if(opcao==1){ system("cls"); cout<<"Equipamentos: "<<endl; l.exibir(); system("pause"); system("cls"); } if(opcao==2){ system("cls"); cout<<"digite o nome do equipamento"<<endl; cin>>nome; cout<<"digite a potencia do equipamento"<<endl; cin>>potencia; cout<<"digite a tensão do equipamento"<<endl; cin>>tensão; if(potencia/tensão<=10){ cout <<"Uso Geral"<<endl; Geral g(potencia,tensão,nome); l.adicionar(&g); //l.clear(); } if(potencia/tensão>10){ cout <<"Uso Especifico"<<endl; cout<<"digite o comprimento do circuito: "; cin>>comprimento; Especifico e(potencia,tensão,nome,comprimento); l.adicionar(&e); } system("cls"); } } }
  8. Um vetor so pode armazenar 1(um) valor quando utilizado apenas uma [] na declaração, então você poderia usar uma matriz e simular que cada [] no inicio é formado por mais 2 letras que vem [0] e [1], exemplo: char letras[6][2]; ai em na letra[0] tem o primeiro caractere aleatório e em letra[1] tem o segundo caractere aleatório. No seu exemplo, você nao precisa criar um char a cada loop, voce pode armazenar o valor diretamente no vetor e depois altera-lo para letras = toupper(letras);
  9. Fique a vontade para modificar e otimizar... #include <stdio.h> #include <stdlib.h> #include <string.h> const char *substitui_pFrase(char *, const char *, const char *); int main() { char frase[100],palavra[15], palavraNova[15], novafrase[125]; palavraNova[0] = '\0'; printf("Digite uma frase(maximo 100 caracteres): "); gets(frase); printf("Digite uma palavra(maximo 15 caracteres): "); gets(palavra); printf("Digite uma palavra nova(maximo 15 caracteres): "); gets(palavraNova); if(substitui_pFrase(frase,palavra,palavraNova)){ strcpy(novafrase,substitui_pFrase(frase,palavra,palavraNova)); printf("Nova frase: %s\n",novafrase); } else printf("Palavra: %s nao encontrada na frase!\n",palavra); return 0; } /* Frase: a frase que contém a palavra para ser substituída palavra: palavra a ser substituída novaPalavra: palavra que substituirá */ const char *substitui_pFrase(char *frase, const char *palavra, const char *novaPalavra){ register int i; bool found = false; char result[strlen(frase)-strlen(palavra)+strlen(novaPalavra)], rest[128]; int len = strlen(frase), lenstrike = strlen(palavra), j = 0, k = 0, r = 0; result[0] = '\0'; rest[0] = '\0'; for(i = 0; i < len; i++){ //Procurar palavra a partir de i for(j = i, k = 0; frase[j] == palavra[k] && k < lenstrike; j++, k++){} //Caso a palavra foi encontrada if(k >= lenstrike-1){ //Obter resto da frase for(r = 0; j < len; r++, j++){ if(frase[j] == '\0') rest[r] = ' '; else rest[r] = frase[j]; } rest[r] = '\0'; //Copiar frase antes da palavra a ser trocada for(j = 0; j < i; j++){ result[j] = frase[j]; } result[strlen(result)] = '\0'; //Copiar nova palavra para frase for(k = 0; k <= strlen(novaPalavra); k++){ result[j+k] = novaPalavra[k]; } strcat(result,rest); found = true; break; }else j = 0; } if(!found) return NULL; result[strlen(result)] = '\0'; return result; }
  10. Parece estar tudo correto, mas como o usuário determina o tamanho da matriz, eu fiz assim: #include <stdio.h> main () { int a=0, b=0; int i, j, mvalor=0; int primos=0, dv=0, x=1; printf("Digite a quantidade de linhas da matriz: \n"); scanf("%d", &a); printf("Digite a quantidade de colunas da matriz: \n"); scanf("%d", &b); //Matriz com o tamanho dado pelo usuario int num[a][b]; for (i=0;i<a;i++){ for (j=0;j<b;j++){ printf("Digite o %d %d valor da matriz: \n", i+1, j+1); scanf("%d", &num[i][j]); for (x=1,dv=0;x <= num[i][j];x++){ if (num[i][j] % x == 0) { dv++; } } if (dv == 2){ primos++; } if (i==0 && j==0){ mvalor = num[i][j]; } if (num[i][j] < mvalor){ mvalor = num[i][j]; } } } printf("O MENOR VALOR e:..................%d \n", mvalor); printf("Quantidade de PRIMOS:............. %d", primos); return 0; }
  11. O seu parece estar funcionando normalmente, tenta esse então: #include<stdio.h> void armazena(struct horario horaAtual[]); void mostra(struct horario *); struct horario{ int hora; int minuto; int segundo; }; int main(){ struct horario horaAtual[5]; armazena(horaAtual); mostra(horaAtual); return 0; } void armazena(struct horario horaAtual[]){ int i; for(i = 0 ; i < 5; i++){ printf("Informe a hora do %do horario:",i+1); scanf("%d",&horaAtual[i].hora); printf("Informe os minutos do %do horario:",i+1); scanf("%d",&horaAtual[i].minuto); printf("Informe os segundos do %do horario:",i+1); scanf("%d",&horaAtual[i].segundo); } return; } void mostra(horario *horaAtual){ int i; for(i = 0; i < 5; i ++){ printf("%d:%d:%d",horaAtual[i].hora,horaAtual[i].minuto,horaAtual[i].segundo); printf("\n"); } return; }
  12. #include<stdio.h> #include<stdlib.h> #include<string.h> typedef struct{ char nome[15]; char email[25]; char endrua[100]; int endnumero; char endcompl[10]; char endbairro[10]; int endcep; int tel; int datadia; int datames; int dataano; char obs[15]; } Agenda; void pesquisarnome(Agenda *, int); int main(){ int tam = 2; Agenda pessoas[tam]; int op; int i; printf("Cadastrar:\n\nEx de cadastro: Nome(Joao), email, endereço rua, numero, bairro, cep, complemento, telefone, dia do aniversario, mes do aniversario, ano do aniversario, observação"); for(i=0;i<2;i++){ scanf("%s %s %s %d %s %d %s %d %d %d %d %s", pessoas[i].nome, pessoas[i].email, pessoas[i].endrua, &pessoas[i].endnumero, pessoas[i].endbairro, &pessoas[i].endcep, pessoas[i].endcompl, &pessoas[i].tel, &pessoas[i].datadia, &pessoas[i].datames, &pessoas[i].dataano, pessoas[i].obs); } for(i=0;i<2;i++){ printf("\n\nCADASTRO(%d):\n\nNOME: %s\nEMAIL: %s\nRUA: %s\nNUMERO: %d\nBAIRRO: %s\nCEP: %d\nCOMPL.: %s\nTEL: %d\nDATA DIA: %d\nDATA MES: %d\nDATA ANO: %d\nOBSERVACAO: %s\n\n\n", i+1, pessoas[i].nome, pessoas[i].email, pessoas[i].endrua, pessoas[i].endnumero, pessoas[i].endbairro, pessoas[i].endcep, pessoas[i].endcompl, pessoas[i].tel, pessoas[i].datadia, pessoas[i].datames, pessoas[i].dataano, pessoas[i].obs); } while(1){ printf("$$$$$$$$$$$$$$$$$$$$$$$ A G E N D A $$$$$$$$$$$$$$$$$$$$$$$$$\n\n\n\n"); printf("MENU: Escolha uma opcao:\n\nPesquisar Nome (1) \n\nPesquisar Mes de Aniversario(2)\n\nNomes e Tels (3)\n\n"); scanf("%d", &op); switch(op){ case 1: pesquisarnome(pessoas, tam); break; default: break; } } return 0; } void pesquisarnome(Agenda *pessoas, int tam){ int i; char x[50]; printf("\nNome: "); scanf("%s",x);//<-- char ja envia o endereco, nao precisa de & for(i=0;i<tam;i++){ if(strcmp(x, pessoas[i].nome)==0){ //<-- observe o uso de [i] e . printf("%s", pessoas[i].nome); } } return; }
  13. #include <stdio.h> #include <stdlib.h> main () { char nome[25]; int qual,d,r,m,t,V,P,C,vaga; printf("\nPROGRAMA DE CONTROLE DE ACESSO - NEW WEB \n"); printf("\n[1] VISITANTE \n[2] FUNCIONARIO \n[3] CLIENTE \n[4] ESTACIONAMENTO\n"); scanf("%d",&qual); if (qual==1) { printf("\n NOME COMPLETO:"); scanf ("%s",nome); printf("\n RG:"); scanf ("%d",&r); printf("\n DEPARTAMENTO:"); scanf ("%d",&d); printf("\n ACESSO LIBERADO!!!\n"); } else if (qual==2) { printf("\n NOME COMPLETO:"); scanf ("%s",nome); printf("\n MATRICULA:"); scanf ("%d",&m); printf("\n DEPARTAMENTO:"); scanf ("%d",&d); printf("\n ACESSO LIBERADO!!!\n"); } else if (qual==3) { printf("\n NOME COMPLETO:"); scanf ("%s",nome); printf("\n RG:"); scanf ("%d",&r); printf("\n TELEFONE:"); scanf ("%d",&t); printf("\n ACESSO LIBERADO!!!\n"); } else if (qual==4) { printf("\n NOME COMPLETO:"); scanf ("%s",nome); printf("\n MATRICULA:"); scanf ("%d",&m); printf("\n DEPARTAMENTO:"); scanf ("%d",&d); printf("\n TELEFONE:"); scanf ("%d",&t); printf("\n VEICULO:"); scanf ("%d",&V); printf("\n PLACA:"); scanf ("%d",&P); printf("\n COR:"); scanf ("%d",&C); printf("\n VAGA:"); scanf ("%d",&vaga); printf("\n ACESSO LIBERADO!!!\n"); } else { printf ("\n INFORMACAO INCORRETA - ACESSO NAO PERMITIDO \n"); } system ("pause"); }
  14. #include <stdio.h> #include<stdlib.h> #include<time.h> void crescente(int vet[]); int main (){ int vet[50]; int i, vet1[20]; srand(time(NULL)); for(i=0;i<50;i++){ vet[i]=rand()%50; } crescente(vet); return 0; } void crescente(int vet[]){ int i, aux, j; for(i=0;i<50;i++){ for(j=i+1; j<50 ; j++){ if(vet[i] > vet[j]){ aux = vet[i]; vet[i] = vet[j]; vet[j] = aux; } } } //Vai retornar apenas uma vez, ele nao vai ir e voltar, //por que ele nao controla a funcao main depois que retorna //return vet[i]; for(i=0; i<50; i++){ printf(" %d ", vet[i]); } printf("\n", vet[i]); }
  15. #include <stdlib.h> #include <stdio.h> #include <string.h> int main(void) { char s1[] = "arara"; char s2[] = "arara"; int i; for(i = 0; i < strlen(s1) && s1[i] == s2[strlen(s1)-i-1]; i++){} if(i == strlen(s1)) printf("Palindromo"); else printf("Nao é Palindromo"); return 0; }
  16. #include<stdio.h> #include<stdlib.h> main() { int ins[20],sexo[20],ex[20],i,contf = 0,contm = 0,tid = 0,maior = 0,menor = 0,men_mulher = 0; float pm = 0 , ph = 0, id[20], por_man = 0.00, por_calc = 0.00; for(i=1;i<=3;i++){ ///--> Questionario // Como voce esta usando i cadastros e armazenando em vetores, sempre acrescente o cochetes([]) e o valor // que estara sendo acessando no vetor, no caso ins[i],id[i],sexo[i],ex[i] printf("Digite o numero de Inscricao: "); scanf("%d",&ins[i]); printf("Digite a sua idade: "); scanf("%f",&id[i]); printf("Digite: 0 - Feminino 1 - Masculino: "); scanf("%d",&sexo[i]); printf("Digite se possui experiencia: 1 - Sim 2 - Nao: "); scanf("%d",&ex[i]); ///--> Condicoes if(i==1) { maior=id[i]; menor=id[i]; men_mulher = 0; } if (sexo==0) { //Abaixo esta incorrento por que voce esta somando 0+0(sexo) e adicionado mais um 1, //e o certo é que voce deveria apenas adicionar ela(contf) mais 1, pois no caso estamos //acrescentando a variavel. //errado: //contf=(sexo+sexo)+1; //o certo seria: contf+=1; //ou contf=contf+1; } else if (sexo[i]==1) { // o mesmo problema de cima contm+=1; } ///-> So usamos else if quando forem acoes opstas, porém que envolvem os mesmos recursos if(sexo[i]==1&& ex[i]== 1) { tid+=id[i]/1; } //Calculo nao esta exato! if(sexo[i]==1 && id[i]>=45) { por_man++; por_calc = por_man/100; ph=por_calc; por_calc = contm*1000; ph = por_calc*ph; } if (sexo[i]==0 && id[i]<=35 && ex[i]==1) { pm++; if(id[i] < men_mulher) men_mulher=id[i]; } if(id[i]>maior) { maior=id[i]; } if(id[i]<menor) { menor=id[i]; } } printf("A quantidade de Mulher e de %d\n ",contf); printf("A quantidade de Homens e de %d\n ",contm); printf("Idade media dos Homens que ja tem experiência no servico:%d\n ",tid/contm); printf("Porcentagem dos homens com mais de 45 anos entre o total de homens %.2f\n",ph); printf("Numero de mulheres que tem idade inferior a 35 anos e com experiencia %f\n ",pm); printf("A menor idade entre as mulheres que ja tem experiencia no servico %d\n ",men_mulher); return 0; }
  17. #include<stdio.h> #include<stdlib.h> #include<math.h> float vida(int nota1, int nota2, int nota3, char op); int main(){ int n1, n2, n3; char opcao;// <-- declarado scanf("%d %d %d \n", &n1, &n2, &n3); printf("%f", vida(n1, n2, n3, opcao));//opcao <-- enviado sem ser inicializado return 0; system("PAUSE"); } float vida(int nota1, int nota2, int nota3, char op){//op <-- recebe opcao sem ser inicializado float a, p; a = (nota1+nota2+nota3)/3; p = ((nota1*5)+(nota2*3)+(nota3*2))/3; switch(op){ //<-- verifica char nao inicializado case 'A': printf("%f", a); break; case 'P': printf("%f", p); break; } //falta return }
  18. 1freakday

    Listas

    Eu encontrei cerca de 3 erros que estavam atrapalhando o funcionamento, talvez alguns sejam mais para otimizar, enfim, segue abaixo: #include <stdio.h> #include <ctype.h> #include <winsock.h> typedef struct nodo { int inf; struct nodo * prox; }NODO; typedef NODO * LISTA_ENC; void cria_lista (LISTA_ENC *lista); int eh_vazia (LISTA_ENC lista); int tamanho (LISTA_ENC lista); void inserir (LISTA_ENC *lista, int val, int k); int recuperar (LISTA_ENC lista, int k); void retirar (LISTA_ENC *lista, int k); void imprime_lista(LISTA_ENC lista); void imprime_inverso_lista(LISTA_ENC lista); void inserir_ordenado(LISTA_ENC * lista, int valor); void cria_lista (LISTA_ENC *lista){ //Aqui tava travando o programa lista=(LISTA_ENC *)NULL; } int eh_vazia (LISTA_ENC lista){ return (lista == NULL); } int tamanho (LISTA_ENC lista){ int cont = 0; for (cont=0;; cont++){ //Precisa verificar se a lista //inicial é nula - e as restantes if(!lista || !lista->prox) break; lista = lista->prox; } return (cont); } //Usei o endereco de uma lista em vez de ponteiro //E troquei os *lista por lista - no caso eram referentes a um ponteiro void inserir (LISTA_ENC lista, int val, int k){ NODO *novo; if (k < 1 || k > tamanho(lista)+1){ printf ("\nERRO! Posição inválida para inserção.\n"); exit (1); } novo = (NODO *) malloc (sizeof(NODO)); if (!novo) { printf ("\nERRO! Memória insuficiente!\n"); exit (2); } novo->inf = val; if (k==1){ novo->prox = lista; lista = novo; } else { LISTA_ENC aux; for (aux=lista; k>2; aux=aux->prox, k--); novo->prox = aux->prox; aux->prox = novo; } } int recuperar (LISTA_ENC lista, int k){ if (k < 1 || k > tamanho(lista)){ printf ("\nERRO! Consulta invalida.\n"); exit (3); } for (;k>1;k--) lista=lista->prox; return (lista->inf); } void retirar (LISTA_ENC *lista, int k) { NODO *aux; if (k < 1 || k > tamanho(*lista)) { printf ("\nERRO! Posição invalida para retirada.\n"); exit (4); } if (k==1) { aux = *lista; *lista = aux->prox; free (aux); } else { NODO *aux2; for (aux=*lista; k>2; k--, aux=aux->prox); aux2 = aux->prox; aux->prox = aux2->prox; free (aux2); } } main (){ //Pequeno teste LISTA_ENC lista = NULL; cria_lista(&lista); inserir(lista,1,1); }
  19. Usa gets(frase); em vez de scanf("%s", &frase);, pois no formato que você colocou o scanf vai adicionar \0 quando for usado <espaco>, usando gets() ele já aceita espaços, ou seja uma frase inteira e so adiciona \0 quando for apertado <enter>
  20. Utilizar um vetor de caracteres com as vogais e comparar com os caracteres da string, e usar um loop e uma variavel contador, bem simples a logica, mas creio que deve ter alguma função da biblioteca string.h que faça isso. :logica - nao e o codigo ; vetor vogais[5] = {'a','e','i','o','u'}; funcao main(){ int contador; //obter string - usando gets, scanf, tanto faz loop(){ //for,while,tanto faz //se n1 caractere da string for == a vogal n2 então contador+=1; //string[n1] == vogais[n2] } //Mostrar contador }
  21. Gostei do raciocínio, mas não seria float @MassakiMsk, ou ta levando em consideração que as notas não possuem resto ?
  22. Essa área é apenas para C/C#/C++, Boa sorte.
  23. Já tem ideia por onde começar? já planejou como sera o jogo? Quando tiver algo para mostrar eu posso ajudar, mas como regra você ainda precisa postar alguma parte do código, ou suas ideias.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!