-
Posts
12 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
Tudo que Eizy postou
-
Entendido! Agradeço por sua ajuda. @Mauro Britivaldo
-
@Mauro Britivaldo Sim, mas a questao é que eu gostaria que eu seleciona-se por meio de uma variavel o tamanho do meu vetor, em c# este jeito da certo, mas em c/c++ é diferente.... Então não é possível desta forma?
-
Fala galera, preciso de uma ajuda.... Gostaria de saber se é possível criar uma variável para que ela ou o usuário definir o tamanho do meu vetor sendo de strings/caracter ou inteiros. No caso se for no main é fácil fazer aquela "gambiarra" mas quando for passar em modulo é possível? FUNCIONA #include <iostream> using namespace std; int main(int argc, char *argv[]) { int var = 10; // ou colocar posteriormente uma entrada para o usuario digitar int vetor[var]; for(int i = 0;i < var; i++){ vetor[i] = i+1; cout << vetor[i] << endl; } return 0; } NÃO FUNCIONA #include <iostream> using namespace std; void vetori(int var,int vetor[var]){ for(int i = 0;i < var; i++){ cout << vetor[i] << endl; } } int main(int argc, char *argv[]) { int var = 10; // ou colocar posteriormente uma entrada para o usuario digitar int vetor[var]; for(int i = 0;i < var; i++){ vetor[i] = i+1; } vetori(var,vetor); return 0; } Me ajudem aii guys
-
Agradeço a ajuda de ambos @Mauro Britivaldo e @cyer me ajudaram muito agora deu certo! Obrigado. Vou criar um post sobre vetores pra tirar uma outra dúvida, ficarei feliz se me ajudarem também. valeu
-
@Mauro Britivaldo Então continuo na mesma questão ainda não limpando, talvez eu tenha que recorrer ao atoi porém ainda quero uma solução para validar o inteiro sem que aja looping, talvez isso ocasione por estar num modulo?
-
@cyer @Mauro Britivaldo valeu galera, porém fazer com que diga que esta errado seguiu meu raciocínio deste o principio maaas o maior problema e que mesmo que volte e eu ate tente colocar cod = 0 ele ainda ira retornar com a entrada antiga apontando que digitei errado e voltando ao looping. Existe alguma maneira de limpar esta variável da memoria zerar ou algo similar para que ele deixei de entrar no IF apos retornar?
-
Fala galera, preciso de uma ajuda ai de vocês pra tirar essa dúvida Quero saber de um jeito para que quando o usuário digitar algo diferente de inteiros ou seja caracteres ele retorne para o menu... Ja tentei algumas formas porém a variável continua com o loop. Se tiver alguma opção para limpar a variável.. NO CASO QUERO VALIDAR O MENU #include <iostream> #include<stdlib.h> #include<stdio.h> #include<windows.h> #include<locale.h> using namespace std; int validar(int cod){ if(isalnum(cod)) { return 0; } else { return 1; } } /*<-----------TELA DE CARREGAMENTO----------->*/ void carregando(int *cr = new int[101]){ for(int i = 0; i < 101; i++) { system("cls"); *(cr + i) = i; cout << "Voltando ao menu principal\n"<< "Aguarde....."<<*(cr+i)<<"%"; int randow = rand() % 10; Sleep(randow); } } /*<------ENTRADA DE ERROS-------->*/ void error(){ system("cls"); cout <<"Ops... Acho que você esqueceu de alguma coisa! Volte ao menu\n\n"; system("pause"); carregando(); } /*<---------CADASTRO DE PRODUTOS--------->*/ void cadastro(char itens[3][50],int qtd[3],int &valido) { for(int i = 0; i < 3; i++) { cout << "\nProduto: "; cin >> itens[i]; cout <<"Estoque: "; cin >> qtd[i]; } valido = 1; cout << "\nProdutos incluidos com sucesso! Volte ao menu.\n\n"; system("pause"); carregando(); } /* <------EXIBIR PRODUTOS INCLUIDOS-------->*/ void exibir(char itens[3][50], int qtd[3],char &resposta) { cout << "\n***ESTOQUE***\n\n"; for(int i = 0;i < 3;i++){ cout <<itens[i] << ": " << qtd[i] << endl; } resposta = 's'; cout << "\nPressione para voltar ao menu\n\n"; system("pause"); carregando(); } /*<----------REMOVER ESTOQUE--------->*/ void excluir(char itens[3][50],int qtd[3], char &resposta){ int cod; cout << "\n***MENU REMOVER***\n"; for(int i = 0; i < 3; i++) { cout << endl << i+1 << " - " << itens[i] <<"\n"; } cout << "\n\nDigite: "; cin >> cod; qtd[cod-1]--; system("cls"); cout <<"\nEXCLUIDO COM SUCESSO\n"; cout << itens[cod-1] << " Total: " << qtd[cod-1] << endl; cout <<"\nVoltando ao menu\n"; system("pause"); resposta = 's'; carregando(); } /*<----------INCLUIR ESTOQUE--------->*/ void incluir(char itens[3][50],int qtd[3], char &resposta){ int cod; cout << "\n***MENU INCLUIR***\n"; for(int i = 0; i < 3 ; i++) { cout << endl << i+1 << " - " << itens[i] <<"\n"; } cout << "\n\nDigite: "; cin >> cod; qtd[cod-1]++; system("cls"); cout <<"\nINCLUIDO COM SUCESSO\n"; cout << itens[cod-1] << " Total: " << qtd[cod-1] << endl; cout <<"\nVoltando ao menu\n"; system("pause"); resposta = 's'; carregando(); } /* <---------MENU DE ESCOLHA--------> */ void menu(int cod, char itens[3][50],int qtd[3],char &resposta, int &valido) { cout << "***MENU***\n1 - INCLUIR ESTOQUE\n2 - EXIBIR ESTOQUE\n3 - REMOVER ESTOQUE\n4 - INCLUIR ESTOQUE\n5 - SAIR\n\nDigite: "; cin >> cod; switch(cod) { case 1: cadastro(itens,qtd,valido); break; case 2: if(valido == 1) exibir(itens,qtd,resposta); else error(); break; case 3: if(valido == 1) excluir(itens,qtd,resposta); else error(); break; case 4: if(valido == 1) incluir(itens,qtd,resposta); else error(); break; case 5: resposta = 'n'; break; default: error(); resposta = 's'; break; } } /* <---------PROGRAMA PRINCIPAL--------> */ int main(int argc, char *argv[]) { setlocale(LC_ALL,"Portuguese"); int cod=NULL,estoque[3], valido = 0; char resposta = 's',itens[3][50]; do{ system("cls"); menu(cod,itens,estoque,resposta,valido); if(resposta !='s'){ do{ system("cls"); cout << "FIQUE MAIS UM POUCO! S/N: "; cin >> resposta; }while(resposta != 's' && resposta !='S' && resposta !='n' && resposta !='N'); } else continue; }while(resposta == 's' || resposta == 'S'); return 0; }
-
Obrigado pela ajuda pessoal agora consegui entender, não sabia sobre o método atoi... Mas tenho só mais uma dúvida no caso que coloquei como string ele se limita apenas a um valor de 1 milhão, existe a possibilidade de ultrapassar ? Ficou assim o código com 100% das validações certinha... Falta apenas saber se posso colocar 1bilhão ou algo em torno. #include<stdio.h> #include<stdlib.h> #include<locale.h> // P = Preço -- CP = Código país -- S = Seguro -- IM = Imposto -- VT = Valor transporte -- i = contator. // CPE = Carga perigosa -- VIA = Meio de transporte. int main(){ setlocale(LC_ALL,"Portuguese"); int P,CP,S,IM,VT,i; char CPE = 'C',VIA = 'P'; P = CP = S = IM = VT = 0; for(i=1;i<=5;i++){ printf("Digite o preço da mercadoria %d: ",i); scanf("%d",&P); while(P < 1){ printf("Digite novamente!\n"); printf("Preço da mercadoria %d: ",i); scanf("%d",&P); } if(P <= 100){ IM = P*0.05; } else{ IM = P*0.1; } fflush(stdin); printf("Digite meio de transporte:\nA - Áereo \nF - Fluvial \nT - Terreste\n VIA: "); VIA = getche(); getche(); printf("\n\n"); while(VIA != 'T' && VIA != 't' && VIA != 'F' && VIA !='f' && VIA != 'A' && VIA !='a'){ printf("Via incorreta!\n"); printf("Digite meio de transporte: \nA - Áereo \nF - Fluvial \nT - Terreste\n VIA: "); VIA = getche(); getche(); printf("\n\n"); } printf("Digite origem do transporte - \n1 - EUA \n2 - México \n3 - outros\n Código: "); scanf("%d",&CP); while(CP < 1 || CP > 3){ printf("Código errado!\n"); printf("Digite o código novamente: "); scanf("%d",&CP); } if(CP == 2 || VIA == 'A' || VIA =='a'){ S = P/2; } else{ S = 0; } printf("Carga é perigosa? S/N: "); fflush(stdin); CPE = getche(); getche(); printf("\n\n"); while(CPE != 'S' && CPE !='s' && CPE != 'N' && CPE != 'n'){ printf("Digitação inválida!\n"); printf("Carga é perigosa? S/N: "); CPE = getche(); getche(); printf("\n\n"); } if(CPE == 'S' || CPE == 's'){ switch(CP){ case 1: VT = 50; break; case 2: VT = 35; break; default: VT = 24; break; } } else switch(CP){ case 1: VT = 12; break; case 2: VT = 35; break; default: VT = 60; break; } printf("Detalhes produto %d\n\n",i); printf("Origem: %d\n",CP); printf("Carga perigosa: %c\n",CPE); printf("Tipo de envio: %c\n\n",VIA); printf("Valor do produto original: ...............%d\n",P); printf("Imposto sobre o produto:..................%d\n",IM); printf("Seguro do produto.........................%d\n",S); printf("Valor do transporte.......................%d\n",VT); P = P+IM+S+VT; printf("Total.....................................%d\n\n",P); } system("pause"); return 0; }
-
Galera por favor é o seguinte, nesse exercício proposto tive apenas um problema que no caso é a continuação do programa na leitura do código do pais (CP) e preço(P) após eu colocar letra ele entra em um loop infinito! Deem uma força ai pro novato. #include<stdio.h> #include<stdlib.h> #include<locale.h> // P = Preço -- CP = Código país -- S = Seguro -- IM = Imposto -- VT = Valor transporte -- i = contator. // CPE = Carga perigosa -- VIA = Meio de transporte. int main(){ setlocale(LC_ALL,"Portuguese"); int P,CP,S,IM,VT,i; char CPE = 'C',VIA = 'P'; P = CP = S = IM = VT = 0; for(i=1;i<=5;i++){ printf("Digite o preço da mercadoria %d: ",i); scanf("%d",&P); while(P < 1){ printf("Digite novamente!\n"); printf("Preço da mercadoria %d: ",i); scanf("%d",&P); } if(P <= 100){ IM = P*0.05; } else{ IM = P*0.1; } fflush(stdin); printf("Digite meio de transporte:\nA - Áereo \nF - Fluvial \nT - Terreste\n VIA: "); VIA = getche(); getche(); printf("\n\n"); while(VIA != 'T' && VIA != 't' && VIA != 'F' && VIA !='f' && VIA != 'A' && VIA !='a'){ printf("Via incorreta!\n"); printf("Digite meio de transporte: \nA - Áereo \nF - Fluvial \nT - Terreste\n VIA: "); VIA = getche(); getche(); printf("\n\n"); } printf("Digite origem do transporte - \n1 - EUA \n2 - México \n3 - outros\n Código: "); scanf("%d",&CP); while(CP < 1 || CP > 3){ printf("Código errado!\n"); printf("Digite o código novamente: "); scanf("%d",&CP); } if(CP == 2 || VIA == 'A' || VIA =='a'){ S = P/2; } else{ S = 0; } printf("Carga é perigosa? S/N: "); fflush(stdin); CPE = getche(); getche(); printf("\n\n"); while(CPE != 'S' && CPE !='s' && CPE != 'N' && CPE != 'n'){ printf("Digitação inválida!\n"); printf("Carga é perigosa? S/N: "); CPE = getche(); getche(); printf("\n\n"); } if(CPE == 'S' || CPE == 's'){ switch(CP){ case 1: VT = 50; break; case 2: VT = 35; break; default: VT = 24; break; } } else switch(CP){ case 1: VT = 12; break; case 2: VT = 35; break; default: VT = 60; break; } printf("Detalhes produto %d\n\n",i); printf("Origem: %d\n",CP); printf("Carga perigosa: %c\n",CPE); printf("Tipo de envio: %c\n\n",VIA); printf("Valor do produto original: ...............%d\n",P); printf("Imposto sobre o produto:..................%d\n",IM); printf("Seguro do produto.........................%d\n",S); printf("Valor do transporte.......................%d\n",VT); P = P+IM+S+VT; printf("Total.....................................%d\n\n",P); } system("pause"); return 0; } Se puder detalhar o motivo agradeço!
-
Só para estudos mesmo. Estou começando a programar e qualquer desafio é bem vindo e achei interessante como funciona essa forma de validação de CPF.
-
Obrigado em, não sabia sobre esse long long. #include <stdio.h> int main ( ) { int cpf2,x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 , x9, D1 , D2; long long CPF,cpfval,cpfvali; printf("\nDigite o CPF: "); scanf("%lld",&cpfvali); printf("\nDigite o CPF: "); scanf("%9lld",&CPF); x1 = CPF /100000000; x2 = (CPF/10000000)%10; x3 = (CPF/1000000)%10; x4 = (CPF/100000)%10; x5 = (CPF/10000)%10; x6 = (CPF/1000)%10; x7 = (CPF/100)%10; x8 = (CPF/10)%10; x9 = CPF%10; D1 = ((x1*10)+(x2*9)+(x3*8)+(x4*7)+(x5*6)+(x6*5)+(x7*4)+(x8*3)+(x9*2))%11; if(D1<2) D1 = 0; else { D1 = 11 - D1; } D2 = ((x1*11)+(x2*10)+(x3*9)+(x4*8)+(x5*7)+(x6*6)+(x7*5)+(x8*4)+(x9*3)+(D1*2))%11; if(D2<2) D2=0; else { D2=11 - D2; } printf("x1: %d\n",x1); printf("x2: %d\n",x2); printf("x3: %d\n",x3); printf("x4: %d\n",x4); printf("x5: %d\n",x5); printf("x6: %d\n",x6); printf("x7: %d\n",x7); printf("x8: %d\n",x8); printf("x9: %d\n",x9); printf("D1: %d\n",D1); printf("D2: %d\n",D2); cpf2 = D1*10+D2; cpfval = CPF*100+cpf2; if(cpfval == cpfvali) printf("CPF Valido: %lld%d \n",CPF,cpf2); else printf("\tINVALIDO\n Digite CPF Novamente\n\n"); system("pause"); return 0; } Está work aqui, pra galera que quiser. Sem estrutura de repetição.
-
Sou iniciante ai na área de programação e principalmente na linguagem C. Fiz um validador de CPF e estou querendo checar o numero se é valido ou não, porém quando coloco ele não faz o calculo de CPF*10, ele dá um numero diferente assim fazendo com que eu não consiga concatenar. Tentei até por no short e mesmo assim nada! #include <stdio.h> int main ( ) { int x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 , x9, D1 , D2; short cpfval, CPF, cpf2; printf("\nDigite o CPF: "); scanf("%9d",&CPF); x1 = CPF /100000000; x2 = (CPF/10000000)%10; x3 = (CPF/1000000)%10; x4 = (CPF/100000)%10; x5 = (CPF/10000)%10; x6 = (CPF/1000)%10; x7 = (CPF/100)%10; x8 = (CPF/10)%10; x9 = CPF%10; D1 = ((x1*10)+(x2*9)+(x3*8)+(x4*7)+(x5*6)+(x6*5)+(x7*4)+(x8*3)+(x9*2))%11; if(D1<2) D1 = 0; else { D1 = 11 - D1; } D2 = ((x1*11)+(x2*10)+(x3*9)+(x4*8)+(x5*7)+(x6*6)+(x7*5)+(x8*4)+(x9*3)+(D1*2))%11; if(D2<2) D2=0; else D2=11 - D2; printf("x1: %d\n",x1); printf("x2: %d\n",x2); printf("x3: %d\n",x3); printf("x4: %d\n",x4); printf("x5: %d\n",x5); printf("x6: %d\n",x6); printf("x7: %d\n",x7); printf("x8: %d\n",x8); printf("x9: %d\n",x9); printf("D1: %d\n",D1); printf("D2: %d\n",D2); cpf2 = D1*10+D2; cpfval = CPF*100+cpf2; if(cpfval == cpf2) printf("CPF Valido: %d%d\n",CPF,cpf2); else printf("Invalido\n %d\n",cpfval); return 0; } Por favor me ajudem! Se possível sem usar estrutura de repetição... Caso não dê me avisem!
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