-
Posts
6.318 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Livros
Cursos
Análises
Fórum
Tudo que devair1010 postou
-
C Nao consigo pesquisar somente os nomes digitados aparece o primeiro cadastro .
devair1010 respondeu ao tópico de albert igo em C/C#/C++
@albert igo seu código está bom , precisa organizar melhor, e ele mostra sempre o primeiro cadastro porque ele está cadastrando na mesma posição, então você precisa usar um contador que seja uma variável global para que ela possa ser usada em qualquer parte do programa, e que mantenha o mesmo valor dentro do programa e apenas possa ser incrementada na hora de cadastrar, e decrementada na função excluircliente ,então coloquei essa variável pos como sendo o contador de cadastro , e precisa usar o else junto com os if's e o switch / case é mais apropriado do que o if nesse caso , então seu código com algumas modificações ficaria assim : #include<stdio.h> #include <ctype.h> #include<conio.h> #include<stdlib.h> #include<string.h> #include<locale.h> #define DBASE 200 /*!< Tamanho do vetor */ #define SIZEDB 10 struct cadastro{ int telefone; char nome [200]; char endereco [200]; char quadra [200]; /*// É char não int*/ char lote [200]; /*// É char não int*/ char complemento [200]; char setor [200]; char cidade [200]; int vazio,cod; }; struct descricao_stt{ char string[ 20 ]; }; struct produtoc{ struct descricao_stt descricao; int quantidade; int codigo; float valor; }; /* VARIABLE GLOBAL */ /* Variáveis globais / Escopo de Programa / Públicas */ struct produtoc DBase[ SIZEDB ]; int verifica_cod(int telefonecod ); void cadastrop(int telefone,int pos ); int verificar_pos (); void consulta (); void consulta_nome (); void consulta_telefone (); void excluircliente (); int produtos_cadastros (); void produtos_cadastrados (); void posicao (); void mosta_letra (); int pos; int tela[7][80]; /* bit 0 1 2 3 4 5 6 7 */ int letras[6][7] ={{ 28, 34, 65, 65,127, 65, 65}, /* letra A*/ { 60, 66, 1, 1,113, 98, 92}, /* letra G*/ { 63, 1, 1, 31, 1, 1, 63}, /* letra E*/ { 65, 67, 69, 73, 81, 97, 65}, /* letra N*/ { 31, 33, 65, 65, 65, 33, 31}, /* letra D*/ { 28, 34, 65, 65,127, 65, 65}};/* letra A*/ struct cadastro cliente[ DBASE ]; /* Definir tamanho do Vetor */ int main (){ setlocale(LC_ALL,""); posicao(); int opcao ,telefonecliente,retorno,posicao,consultacliente,produto; float total; struct cadastro cliente[ DBASE ]; do{ system ("cls"); mosta_letra(); printf("================================================================================"); printf("================================================================================"); printf("========================| 1 - Novo Pedido |====================="); printf("========================| 2 - consulta cliente |====================="); printf("========================| 3 - Alterar pedido |====================="); printf("========================| 4 - Alterar endereço |====================="); printf("========================| 5 - Produtos |====================="); printf("========================| 6 - Excluir pedido |====================="); printf("========================| 7 - Excluir cliente |====================="); printf("========================| 8 - Sair do sistema |====================="); printf("================================================================================"); printf("================================================================================"); printf("======================== | DIGITE UMA OPÇÃO | ====================="); printf(" ----- \n"); printf(" | |\n"); printf(" | "); scanf ("%d",&opcao); switch(opcao){ case 1: consulta(); printf("\nFazer o pedido \n"); produtos_cadastros(); produtos_cadastrados(); system("pause"); break; case 2: printf(" 1 - Consulta por nome\n"); printf(" 2 - Consulta por telefone\n"); scanf("%d",&consultacliente); if ( consultacliente == 1){ consulta_nome(); } if ( consultacliente==2){ consulta_telefone(); } if ( consultacliente != 1 && consultacliente!= 2 ){ system("cls\n"); printf("codigo invalido\n"); system("pause"); } break; case 5: printf("1- Alterar valor \n"); printf("2- produto cadastrado\n"); printf("3- excluir cadastro\n"); scanf("%d",&produto); fflush(stdin); system("cls"); if(produto==1){ scanf("%f", &total); DBase[0].valor = total ; DBase[0].valor*1; printf("%.2f",DBase[0].valor); system("pause"); } else if (produto==2){ produtos_cadastros( ); produtos_cadastrados( ); scanf("%f", &total); DBase[0].valor = total ; system("pause"); system("cls"); } break; case 7: excluircliente (); break; } }while (opcao != 8); /*//Diferente de 8*/ return 0; } void cadastrop(int cod,int posR){ int cont; do { cliente[pos].telefone=cod; /*// NUMERO*/ printf("Telefone: %d\n",cliente[pos].telefone); /*// Faltou a posição*/ printf("Nome: "); gets(cliente[pos].nome); printf("Endereço:"); gets(cliente[pos].endereco ); printf("Quadra: "); gets(cliente[pos].quadra); printf("Lote: "); gets(cliente[pos].lote); printf("Complemento: "); gets(cliente[pos].complemento); printf("Setor: "); gets (cliente[pos].setor); printf("Cidade :"); gets(cliente[pos].cidade); cliente[pos].vazio = 1; /*//tinha r no lugar de z*/ cont== 1; pos++; }while (cont==1); return; } int verificar_pos(){ int cont = 0 ; while (cont <= 200){ if(cliente[cont].vazio == 0 ) return (cont); cont ++ ; } return (-1); } /*// Funções são colocadas fora de outras e não dentro.*/ int verifica_cod(int cod){ int cont ; for ( cont = 0 ; cont < 200 ; cont ++ ){ if (cliente[cont].telefone== cod){ return 0; } } return (1); } void consulta(){ int cont=0,telefone,posicao,retorno ; printf ("Digite o telefone: "); scanf("%d",&telefone); fflush(stdin); system("cls"); while (cont<= 200){ if (cliente[cont].telefone == telefone){ if (cliente[cont].vazio == 1){ printf("\nTelefone: ---- %d\nNome: -------- %s",cliente[cont].telefone,cliente[cont].nome ); printf("\nEndereço: ---- %s\nQuadra: ------ %s",cliente[cont].endereco,cliente[cont].quadra ); printf("\nLote: -------- %s\nComplemento: - %s",cliente[cont].lote ,cliente[cont].complemento); printf("\nSetor: ------- %s\nCidade: ------ %s",cliente[cont].setor ,cliente[cont].cidade ); system("pause"); break; } } cont ++ ; } if (cliente[cont].telefone != telefone){ retorno = verifica_cod(telefone); cadastrop(telefone,posicao); } } void consulta_nome(){ int cont=0,flag ; char nome[100] ; printf ("Digite o nome: "); scanf("%s",&nome); fflush(stdin); system("cls"); flag=0; while (cont<= pos){ if (strcmp(cliente[cont].nome,nome)== 0){ flag=1; printf("\nTelefone: ---- %d\nNome: -------- %s",cliente[cont].telefone,cliente[cont].nome ); printf("\nEndereço: ---- %s\nQuadra: ------ %s",cliente[cont].endereco,cliente[cont].quadra ); printf("\nLote: -------- %s\nComplemento: - %s",cliente[cont].lote ,cliente[cont].complemento); printf("\nSetor: ------- %s\nCidade: ------ %s",cliente[cont].setor ,cliente[cont].cidade ); break; } cont ++ ; } if(flag==0){ printf("Não existe cadastro com esse nome"); } printf("\n Tecle"); getch(); } void consulta_telefone(){ int cont=0 , telefone,flag; printf ("Digite o telefone: "); scanf("%d",&telefone); fflush(stdin); system("cls"); flag=0; while (cont<= pos){ if (cliente[cont].telefone == telefone){ if (cliente[cont].vazio == 1){ printf("\nTelefone: ---- %d\nNome: -------- %s",cliente[cont].telefone,cliente[cont].nome ); printf("\nEndereço: ---- %s\nQuadra: ------ %s",cliente[cont].endereco,cliente[cont].quadra ); printf("\nLote: -------- %s\nComplemento: - %s",cliente[cont].lote ,cliente[cont].complemento); printf("\nSetor: ------- %s\nCidade: ------ %s",cliente[cont].setor ,cliente[cont].cidade ); flag=1; break; } } cont ++ ; } if (flag==0){ printf("Não existe cadastro com esse telefone"); } printf("\n Tecle"); getch(); } int produtos_cadastros( ){ DBase[0].codigo = 1; DBase[0].descricao = *(struct descricao_stt *)"Liquigás"; DBase[0].valor = 60.00; DBase[0].quantidade= 0; DBase[1].codigo = 2; DBase[1].descricao = *(struct descricao_stt *)"Consigás"; DBase[1].valor = 58.00; DBase[1].quantidade= 0; DBase[2].codigo = 3; DBase[2].descricao = *(struct descricao_stt *)"Nacional Gás"; DBase[2].valor = 58.00; DBase[2].quantidade= 0; DBase[3].codigo = 4; DBase[3].descricao = *(struct descricao_stt *)"Gás Completo"; DBase[3].valor = 175.00; DBase[3].quantidade= 0; DBase[4].codigo = 5; DBase[4].descricao = *(struct descricao_stt *)"Água nina"; DBase[4].valor = 7.00; DBase[4].quantidade= 0; DBase[5].codigo = 6; DBase[5].descricao = *(struct descricao_stt *)"Água Gold"; DBase[5].valor = 7.00; DBase[5].quantidade= 0; DBase[6].codigo = 7; DBase[6].descricao = *(struct descricao_stt *)"Água Ypê"; DBase[6].valor = 8.00; DBase[6].quantidade= 0; DBase[7].codigo = 8; DBase[7].descricao = *(struct descricao_stt *)"Água Completa"; DBase[7].valor = 58.00; DBase[7].quantidade= 0; return( 0 ); } void produtos_cadastrados(){ int i; for( i = 0; i < SIZEDB; i++ ){ if( 0 != DBase[ i ].codigo ) printf( "ID: %d \t \t%s \t%.2f\n", DBase[ i ].codigo, &DBase[ i ].descricao, DBase[ i ].valor ); } return; } void excluircliente (){ int tel ,cont,j ; char resp ; system("cls"); printf("Digite o telefone "); scanf("%d",&tel); fflush(stdin); for ( cont =0 ; cont <= pos ;cont++){ if (cliente[cont].telefone == tel ){ if (cliente[cont].vazio == 1 ){ printf("\nTelefone: ---- %d\nNome: -------- %s",cliente[cont].telefone,cliente[cont].nome ); printf("\nEndereço: ---- %s\nQuadra: ------ %s",cliente[cont].endereco,cliente[cont].quadra ); printf("\nLote: -------- %s\nComplemento: - %s",cliente[cont].lote ,cliente[cont].complemento); printf("\nSetor: ------- %s\nCidade: ------ %s",cliente[cont].setor ,cliente[cont].cidade ); printf("\n Deseja exluir esse pedido? S/N "); scanf("%s",&resp); if (toupper(resp) == 'S'){/* passa para maiúscula */ for(j=cont;j<pos;j++){ cliente[j] = cliente[j+1]; } pos--; printf("\n Exclusão feita com sucesso \n "); system("pause"); } else if (toupper(resp) == 'N'){ printf("Exclusão cancelada ! \n "); system("pause"); } } } } } void posicao(){/*caracteres 7 x 7*/ int c=20,i,j,k,a; for(i=0;i<6;i++){ for(j=0;j<7;j++){ a=letras[i][j];/* bits ao contrário 0 1 2 3 4 5 6 */ for(k=0;k<7;k++){ if(a % 2 == 1){ tela[j][k+c]=1; } a/=2; } } c+=8; } } void mosta_letra(){ int i,j; for(i=0;i<7;i++) for(j=0;j<80;j++) if(tela[i][j]==1) printf("#"); else printf(" "); } -
C Como imprimir uma string que vem antes de outra?
devair1010 respondeu ao tópico de BarbaNegra27 em C/C#/C++
@BarbaNegra27 sendo o que está no arquivo igual ao que você postou , seria assim : ______ | | --------------------------- /* esta linha não serve para nada , será ignorada*/ | CADASTRO /* esta linha não serve para nada , será ignorada*/ | --------------------------- /* esta linha não serve para nada , será ignorada*/ | Nome: Marcos Belino /* guarde essa linha em uma variável var_1 */ bloco -| CPF: 123.456.789-10 /* guarde essa linha em outra variável var_2 */ | Data de Nascimento: 123456 /* guarde essa linha em outra variável var_3 */ | Numero Do Cliente: #8 /* guarde essa linha em outra variável var_4 */ | --------------------------- /* esta linha não serve para nada , será ignorada*/ | |______ então use o comando fgets() que pega o que estiver na linha toda até o final da linha e coloca na string, então para cada bloco você precisa usar o comando fgets() oito vezes, um para cada linha, assim o quarto fgets você coloca em uma variável, que nesse caso é o nome, o quinto fgets é o cpf coloque em outra variável, o mesmo para o sexto e sétimo, e o oitavo apenas para que aponte para o próximo bloco, onde será feito a mesma coisa, então nessas variáveis estará o conteúdo desse bloco, assim você sabe qual variável vem antes e depois do cpf,que nesse caso é var_2, então para saber se é esse cpf que você está procurando é só comparar com essa variável , e para imprimir o que vem antes do cpf você imprime a variável que foi usada antes do cpf, que é var_1, e depois, a mesma coisa . -
C Como imprimir uma string que vem antes de outra?
devair1010 respondeu ao tópico de BarbaNegra27 em C/C#/C++
@BarbaNegra27 a função fgets pega a linha toda e coloca em uma variável, então nessa variável estará o cpf , e creio que os outros dados estarão antes e depois do cpf a um espaço antes e depois do cpf, como postei aí acima . então você imprime os caracteres da string um por um começando da posição zero até encontrar o caractere nulo " \0 " e para encontrar o cpf nesse exemplo acima, ele será o segundo dado da string logo depois do primeiro espaço . -
C Como imprimir uma string que vem antes de outra?
devair1010 respondeu ao tópico de BarbaNegra27 em C/C#/C++
@BarbaNegra27 se na string esses dados estiverem separados por espaço assim : string = " nome cpf endereco data_nascimento outros" e se você souber a sequencia em que eles estão , então imprima o que está antes ou depois do cpf letra por letra até encontrar um espaço e nesse ponto você já sabe que depois desse espaço será outro dado . poste o seu código para vermos como está e em que podemos ajudar . -
@Misto_Crente o único número primo que é par é o número 2 , então coloque todos os números ímpares entre 1 e N em um vetor e mais o número 2, depois com dois laços de repetição verifique e delete todos os múltiplos de um número pelos outros que estão no vetor, assim no vetor só restará os números primos, depois verifique a multiplicidade e paridade .
-
Estou Montando meu PC
devair1010 respondeu ao tópico de Tiago Guena em Montagem e upgrade de computadores de mesa
@Tiago Guena boa configuração, mas essa fonte não ! , melhor seria a corsair cx 450w , e a memória é pouca, bom seria 8 gb ou 16 gb . -
@cyer @cyer muito obrigado ! com seu código funcionou certo, e também as linhas estão sendo desenhadas no local certo , segue o código corrigido : #include <windows.h> #include <math.h> #include <conio.h> #include <tchar.h> static int i; LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow){ static TCHAR szAppName[] = TEXT ("Connect") ; HWND janela ; MSG msg ; WNDCLASS wndclass ; wndclass.style = CS_HREDRAW | CS_VREDRAW ; wndclass.lpfnWndProc = WndProc ; wndclass.cbClsExtra = 0 ; wndclass.cbWndExtra = 0 ; wndclass.hInstance = hInstance ; wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ; wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ; wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ; wndclass.lpszMenuName = NULL ; wndclass.lpszClassName = szAppName ; if (!RegisterClass (&wndclass)){ MessageBox (NULL, TEXT ("Program requires Windows NT!"), szAppName, MB_ICONERROR) ; return 0 ; } janela = CreateWindow (szAppName, TEXT ("Desenhar Uma Estrela"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL) ; ShowWindow (janela, iCmdShow) ; UpdateWindow (janela) ; while (GetMessage (&msg, NULL, 0, 0)){ TranslateMessage (&msg) ; DispatchMessage (&msg) ; } return msg.wParam ; } LRESULT CALLBACK WndProc (HWND janela, UINT message, WPARAM wParam, LPARAM lParam){ HDC tela ; static TCHAR frase[] = _T("Tecle ESC Para Sair !"); PAINTSTRUCT ps ; int j; tela = GetDC (janela) ; switch (message){ case WM_COMMAND: return 0; case WM_KEYDOWN: if (wParam == VK_ESCAPE){ PostQuitMessage (0) ; return 0 ; } return 0; case WM_PAINT : tela = BeginPaint (janela, &ps) ; TextOut(tela, 650, 50, frase, _tcslen(frase)); MoveToEx( tela,static_cast<int>(cos(i*3.141615/180)*200+300), static_cast<int>(sin(i*3.141615/180)*200+250),0) ;//posição de inicio da estrela for(j=0;j<5;j++){ LineTo(tela,static_cast<int>(cos((i+ j*72+36)*3.141615/180)*100+300) , static_cast<int>(sin((i+ j*72+36)*3.141615/180)*100+250));//vai para essas posições LineTo(tela,static_cast<int>(cos((i+(j+1)*72)*3.141615/180)*200+300) , static_cast<int>(sin((i+(j+1)*72)*3.141615/180)*200+250)); } i++; if(i>360)i=0; Sleep(50); InvalidateRect (janela, NULL, TRUE) ;//limpa a tela EndPaint (janela, &ps) ; return 0 ; case WM_DESTROY: PostQuitMessage (0) ; return 0 ; } return DefWindowProc (janela, message, wParam, lParam) ; }
-
C Alguém pode me ajudar com esses 2 exercícios !! Muito grato !!
devair1010 respondeu ao tópico de Gabriel T.I em C/C#/C++
@Gabriel T.I no exercício 1 tem um erro de syntaxe na linha 7 , nesta linha está escrito i , 2 mas teria que ser i mod 2 e esse código parece ser para rodar no visualg , já o exercício 2 parece ser do portugol studio, então você precisa usar tal programa para visualizar o resultado e ter a resposta das questões . -
Outro programação em fortran 90
devair1010 respondeu ao tópico de rafaelteixera em Programação - iniciantes
@rafaelteixera para parar você colocando um laço de repetição do / end do , e dentro do laço cloque um if para ver se a idade ou a altura é igual a zero, se for zero então coloque exit, assim ele sai do laço e para de pegar os dados, então você faz os cálculos . -
Outro Como resolvo esse exercício ?
devair1010 respondeu ao tópico de Clemilda Nazaré em Programação - iniciantes
@Clemilda Nazaré coloque um vetor com 30 posições para as idades e outro para a opiniao e coloque um loop que repita 30 vezes e dentro dele pegue os dados usando o comando leia e coloque nos vetores, depois do loop use o comando se para verificar a quantidade de cada nota e imprima cada uma seguida da quantidade, e também as outras questões . poste seu código para vermos como está e em que podemos ajudar . -
C Não estou conseguindo voltar para um sub-menu
devair1010 respondeu ao tópico de RenanMaia em C/C#/C++
@RenanMaia ele está terminado por que a variável de controle opcao não foi zerada quando saiu do submenu opção 5 , e também precisa colocar as opcao2 e opcao3 zeradas logo depois do menu principal : while(opcao < 1 || opcao > 7) { printf("valor de opca= %d",opcao);getch(); system("cls"); puts("======================"); puts("PRESTADORA DE SERVICOS"); puts("======================"); puts(" MENU "); puts("----------------------"); puts("1 - Tipos de servicos"); puts("2 - Cadastro de Clientes"); puts("3 - Cadastrar os servicos prestados"); puts("4 - servicos (por dia)"); puts("5 - servicos prestados por valor"); puts("6 - relatorio geral"); puts("7 - Sair"); puts("----------------------"); scanf("%i", &opcao); opcao2 = 0;opcao3 = 0;/* essa linha aqui */ switch (opcao) e também na função cadastrar clientes no case 1 você colocou exit( 0 ) e com isso ele sai do programa, então coloque break switch (opcao3) { case 1: system("cls"); lerBackUp = fopen("BackUp.txt", "r"); if(lerBackUp == NULL) { printf("\a Arquivo nao encontrado!\n"); getchar(); /*exit(0);*/ break; } -
Pascal Tipos de dados não reconhecido
devair1010 respondeu ao tópico de Tecinf em Programação - outros
@Tecinf seria melhor você usar o pascalzim , ele funciona muito bem , esse turbo pascal é bem antigo e pode ser por isso que ele só aceita o tipo string . -
@aidam experimente essa função que retorna o digito na posição especificada : int digito(int Nmr, int p){/* aqui o numero e a posiçao*/ int num[10],aux,c,i=0,t=0,z; while(Nmr>0){ num[t]=Nmr%10; Nmr/=10; t++; } z=t;c=t/2;t--; for(i=0;i<c;i++){ aux = num[i]; num[i] = num[t]; num[t] = aux; t--; } return num[p];/*retorna o digito do numero na posicao*/ } então chame a função assim : digit = digito(numero,casa); digit é o digito .
-
C Erro Aquivo parou de funcionar e criar gravar e carregar FILE
devair1010 respondeu ao tópico de cherberus em C/C#/C++
@cherberus na função aloca coloque essas linhas aqui printf("Digite a idade: "); fflush(stdin); scanf("%d", novo->idade); antes de pegar o nome printf("Digite o nome: "); fflush(stdin); gets(novo->nome); pois está dando erro com o gets antes, então colocando o gets depois resolve um dos erros , outro erro é na função libera, remova essa linha /*free(atual);*/ isso resolve outro erro , mas ainda tem outro que não estou conseguindo resolver , que é na hora de finalizar o programa para de funcionar . -
Outro como faço para repetir uma posição no visualg?
devair1010 respondeu ao tópico de eberth ronald em Programação - outros
@eberth ronald para repetir e o jogo continuar , coloque um repita antes do terceiro limpatela e o, ate, logo depois do fimescolha , creio que se você usar vetor ou matriz seria mais fácil , pois os carros ficariam guardados na matriz de acordo que ele se movimentem . -
Outro programação em fortran 90
devair1010 respondeu ao tópico de rafaelteixera em Programação - iniciantes
@rafaelteixera se puder use um vetor com muitas posições para guardar os dados coletados e coloque um loop com um contador para ir pegando os dados e guardando no vetor na posição do contador, após pegar os três dados incremente o contador em uma unidade para apontar para a próxima posição do vetor, e dentro do loop verifique se a pessoa tem mais de 50 anos se tiver então vai somando essas altura e guarde em uma variável, assim depois que sair desse loop calcule a media das altura . poste seu código para podermos ver como está e em que podemos ajudar . -
C Erro Aquivo parou de funcionar e criar gravar e carregar FILE
devair1010 respondeu ao tópico de cherberus em C/C#/C++
@cherberus então na verdade não há nada no código para abrir e gravar FILE , então para trabalhar com arquivo precisa criar a variável tipo FILE * arquivo e depois adicionar o nome para o arquivo já abrindo esse arquivo e em seguida se quiser gravar nele, e para quem está começando essas funções com ponteiro são bem difícil, seria melhor usar vetor . -
@RenanMaia sim , você pode colocar como um vetor normal com a quantidade de posições que você quiser, e na hora de acessar o arquivo que você quiser então informe em qual posição do vetor está o referido arquivo . sendo que em cada posição pode ter um nome de arquivo .
-
C Como checar se um arquivo ta aberto
devair1010 respondeu ao tópico de Gnomo Psicodélico em C/C#/C++
@Gnomo Psicodélico para saber se o arquivo está aberto, você verifica ao abrir o arquivo para ler , com fopen então se o arquivo for igual a NULL é porque ele não está aberto . mas não precisa checar duas vezes pois se da primeira vez ele estiver aberto então na segunda ele vai estar aberto do mesmo jeito, ou se não estiver aberto é a mesma coisa, sendo que se você abrir o arquivo você precisa fecha-lo e se abrir duas vezes precisa fechar também duas vezes . -
@Igor Vargas o cont fica depois de colocar no vetor : maior[cont]=altura[x]; cont++;
-
@Igor Vargas essa linha está com erro cont++; maior[x]=altura[x]; tem que ser assim : maior[cont]=altura[x]; cont++;
-
@aidam você precisa separar os dígitos do número e colocar em um vetor e para isso você pode usar o função mod e como esse número está na base 10 então faça numero mod 10 , depois precisa inverter os números no vetor e então mostra o número que está na posição informada que será a mesma no vetor . se você puder poste seu código para vermos como está e em que podemos ajudar .
-
@Igor Vargas parece que esse erro é porque você não inicializou a variável soma : int y,cont,soma;
-
olá pessoal alguém poderia me ajudar, estou estudando a linguagem c++ e consegui fazer esse código, mas ele está apresentado mensagens " warnig " , queria saber como acertar o código para não aparecer essas mensagens e porque o desenho faz linhas aleatórias onde não era para fazer, e também como detectar se a tecla ESC foi pressionada . ps : para rodar esse código precisa colocar ele como new project / windows application no dev c++ ou new project / Win32 GUI project no codeblocks . esse é o relatório de erros : ||=== Build: Debug in desenhar uma estrela_3 (compiler: GNU GCC Compiler) ===| C:\Users\usuario\Documents\Arquivos_win32GUI\desenhar uma estrela_3\main.cpp||In function `LRESULT WndProc(HWND__*, UINT, WPARAM, LPARAM)':| C:\Users\usuario\Documents\Arquivos_win32GUI\desenhar uma estrela_3\main.cpp|51|warning: passing `double' for converting 2 of `BOOL MoveToEx(HDC__*, int, int, tagPOINT*)'| C:\Users\usuario\Documents\Arquivos_win32GUI\desenhar uma estrela_3\main.cpp|51|warning: passing `double' for converting 3 of `BOOL MoveToEx(HDC__*, int, int, tagPOINT*)'| C:\Users\usuario\Documents\Arquivos_win32GUI\desenhar uma estrela_3\main.cpp|53|warning: passing `double' for converting 2 of `BOOL LineTo(HDC__*, int, int)'| C:\Users\usuario\Documents\Arquivos_win32GUI\desenhar uma estrela_3\main.cpp|53|warning: passing `double' for converting 3 of `BOOL LineTo(HDC__*, int, int)'| C:\Users\usuario\Documents\Arquivos_win32GUI\desenhar uma estrela_3\main.cpp|54|warning: passing `double' for converting 2 of `BOOL LineTo(HDC__*, int, int)'| C:\Users\usuario\Documents\Arquivos_win32GUI\desenhar uma estrela_3\main.cpp|54|warning: passing `double' for converting 3 of `BOOL LineTo(HDC__*, int, int)'| ||=== Build finished: 0 error(s), 6 warning(s) (0 minute(s), 2 second(s)) ===| ||=== Run: Debug in desenhar uma estrela_3 (compiler: GNU GCC Compiler) ===| o código completo é esse : #include <windows.h> #include <math.h> #include <conio.h> static int i; LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow){ static TCHAR szAppName[] = TEXT ("Connect") ; HWND janela ; MSG msg ; WNDCLASS wndclass ; wndclass.style = CS_HREDRAW | CS_VREDRAW ; wndclass.lpfnWndProc = WndProc ; wndclass.cbClsExtra = 0 ; wndclass.cbWndExtra = 0 ; wndclass.hInstance = hInstance ; wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ; wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ; wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ; wndclass.lpszMenuName = NULL ; wndclass.lpszClassName = szAppName ; if (!RegisterClass (&wndclass)){ MessageBox (NULL, TEXT ("Program requires Windows NT!"), szAppName, MB_ICONERROR) ; return 0 ; } janela = CreateWindow (szAppName, TEXT ("Desenhar Uma Estrela"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL) ; ShowWindow (janela, iCmdShow) ; UpdateWindow (janela) ; while (GetMessage (&msg, NULL, 0, 0)){ TranslateMessage (&msg) ; DispatchMessage (&msg) ; } return msg.wParam ; } LRESULT CALLBACK WndProc (HWND janela, UINT message, WPARAM wParam, LPARAM lParam){ HDC tela ; COLORREF color; PAINTSTRUCT ps ; int z=0; double x,y,x2,y2,x3,y3,x4,y4,x5,y5; double k,w,k2,w2,k3,w3,k4,w4,k5,w5; tela = GetDC (janela) ; switch (message){ case WM_COMMAND: if(kbhit())z=getch(); if(z==27){ PostQuitMessage (0) ; return 0; } case WM_PAINT : tela = BeginPaint (janela, &ps) ; x =cos( i *3.141615/180)*200+300; y =sin( i *3.141615/180)*200+250; x2=cos((i+72 )*3.141615/180)*200+300; y2=sin((i+72 )*3.141615/180)*200+250; x3=cos((i+144)*3.141615/180)*200+300; y3=sin((i+144)*3.141615/180)*200+250; x4=cos((i+216)*3.141615/180)*200+300; y4=sin((i+216)*3.141615/180)*200+250; x5=cos((i+288)*3.141615/180)*200+300; y5=sin((i+288)*3.141615/180)*200+250; k =cos( i+36 *3.141615/180)*100+300; w =sin( i+36 *3.141615/180)*100+250; k2=cos((i+108)*3.141615/180)*100+300; w2=sin((i+108)*3.141615/180)*100+250; k3=cos((i+180)*3.141615/180)*100+300; w3=sin((i+180)*3.141615/180)*100+250; k4=cos((i+252)*3.141615/180)*100+300; w4=sin((i+252)*3.141615/180)*100+250; k5=cos((i+324)*3.141615/180)*100+300; w5=sin((i+324)*3.141615/180)*100+250; i++; MoveToEx(tela,x ,y,0) ;//posição de inicio LineTo (tela,k ,w ) ;//vai para essa posição LineTo (tela,x2,y2 ) ; LineTo (tela,k2,w2 ) ; LineTo (tela,x3,y3 ) ; LineTo (tela,k3,w3 ) ; LineTo (tela,x4,y4 ) ; LineTo (tela,k4,w4 ) ; LineTo (tela,x5,y5 ) ; LineTo (tela,k5,w5 ) ; LineTo (tela,x ,y ) ; if(i>360)i=0; Sleep(500); InvalidateRect (janela, NULL, TRUE) ;//limpa a tela EndPaint (janela, &ps) ; return 0 ; case WM_DESTROY: PostQuitMessage (0) ; return 0 ; } return DefWindowProc (janela, message, wParam, lParam) ; }
-
C++ problema para uma variável inteira receber um caractere
devair1010 respondeu ao tópico de João Augusto Gomes Ribeiro em C/C#/C++
@João Augusto Gomes Ribeiro nesse código acima, que você postou quarta-feira , para saber se empatou coloque um if para saber se a variável g é false e se for então empatou. e para as jogadas invalidas coloque um loop e dentro dele pega qual jogada e verifique se é menor que 1 ou maior que nove se for então repete . e se for uma letra então precisa usar uma variável char para pegar a jogada e verificar com strlen() char h[10]; . . c=strlen(h); if(c>1)cout<<"jogada invalida\n"; . . c=int(h[0]); pos[r]=c; se o tamanho for maior que 1 então é jogada inválida e em seguida transforme para inteiro e verifique se é menor que 1 ou maior que 9 .
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