-
Posts
670 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
Tudo que 1freakday postou
-
Tenta usar #include <stdio.h> no topo.
-
Daqui a pouco vão apagar esses também, enfim Victor, conseguiu resolver?, pode mandar mensagem privada se quiser
-
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.
-
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();
-
Programa capaz de exibir os sinais luminosos de uma sinaleira
1freakday respondeu ao tópico de Luan Brito em C/C#/C++
#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; } -
Codigo em c que desmembre-o em digitos para que possam ser usados posteriormente
1freakday respondeu ao tópico de Dauster Skywallker em C/C#/C++
#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. -
Se perceber eu tinha colocado, mas problema resolvido de qualquer jeito!
-
#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"); } } }
-
Uso do rand() - gerar letras aleatórias
1freakday respondeu ao tópico de Philipe de Souza em C/C#/C++
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); -
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; }
-
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; }
-
Erro ao passar struct como parametro da função
1freakday respondeu ao tópico de Rodrigo ADS Lima em C/C#/C++
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; } -
#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; }
-
scanf("%d",&consumo[i]);
-
#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"); }
-
Porque minha função esta retornando errado? (vetor ordem crescente)
1freakday respondeu ao tópico de Guilherme Sixe em C/C#/C++
#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]); } -
#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; }
-
#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; }
-
Pfv olhem o meu código. o que tem de errado nele? (funções) dev-c++]
1freakday respondeu ao tópico de Guilherme Sixe em C/C#/C++
#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 } -
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); }
-
Como calcular o comprimento de uma string sem usar função strlen?dev-c++, olhem!
1freakday respondeu ao tópico de Guilherme Sixe em C/C#/C++
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> -
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 }
-
Gostei do raciocínio, mas não seria float @MassakiMsk, ou ta levando em consideração que as notas não possuem resto ?
-
Essa área é apenas para C/C#/C++, Boa sorte.
-
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