
Binder
Membros-
Total de itens
135 -
Registro em
-
Última visita
Tudo que Binder postou
-
Opa, faça conforme expliquei anteriormente... faça um "if (comando de condição) para testar sua variavel. Conforme ultimo "post". Logo após o usuario digitar o valor correspondente, teste esse valor, se for "zero", faça seus comandos; Senão for zero, continue seu algoritimo.
-
Valeu Dan Oliveira, testei agora e funcionou, muito obrigado mesmo pela atenção e explicação!
-
Opa, Entrar com zero a onde? se for no inicio do programa( no menu) coloquei um "if" logo abaixo do main para testar a opção escolhida.Caso for menor do que 1 e maior do que 4, dá uma mensagem na tela, e fecha o programa. Teu codigo alterado depois do menu. int main(){ int hs, min, seg; //TEMPO int km, mt, op; // ESPAÇO int k_h, m_s; //TRANSFORMAÇÃO DE ESPAÇO int op2, op3, op4; float velocidade, tempo, espaco; while(op<1 || op>4){ printf("\n===================Menu=======================" "\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" "\n1. calculo da velocidade media" "\n2. calcular espaco percorrido " "\n3. calcular tempo gasto " "\n4. para sair " "\n" ); scanf("%d",&op); setbuf(stdin,NULL); if (op < 1 || op > 4) { printf("Opcao Invalida\n"); system("pause"); exit(0); } } Agora se , não poderá entrar com zero em alguma das opções escolhida pelo usuario, como "espaço percorrido", "tempo em horas"... faça a mesma coisa, que eu fiz anteriormente, use um "if" e teste a variavel.. Exemplo: switch(op){ case 1: printf("\nDigite o espaco percorrido em Km"); scanf("%f", &espaco); setbuf(stdin,NULL); if (&espaço == 0 || &espaço < 0){ //comandos; } printf("\nDigite o tempo gasto em Horas"); scanf("%f", &tempo); setbuf(stdin,NULL); if (&tempo == 0 || &espaço < 0){ //comandos; } ............
-
Ola, eu testei agora, porém não funcionou. digitei 0(zero), e na hora de imprimir , não caiu no meu "if") int verifica(int a) { //Se for par... if(a % 2 == 0) return 0; //Se for impar... else if(a%2==1) return 1; //Se for zero if(a==0) return -1; } Main()... resultado = verifica(numero); if(resultado == 0){ printf("Esse numero e par.\n");} else{ printf("Esse numero e impar.\n");} if(resultado == -1){ printf("Numero e zero");}
-
Olá Pessoal, estou fazendo um programa em c , que preciso dar 3 returns. Se o numero for par -> return (0) Se o numero for impar -> return (1) Se o numero for zero(nulo) -> return(-1) Eu consegui fazer os numeros "pares" e "impares" dentro da função, porém não cosegui retornar -1 dentro da funçao, e acabei fazendo dentro do main mesmo.Não sei se é a melhor forma. Grato #include <stdio.h> #include <stdlib.h> int verifica(int a) { if(a % 2 == 0){ return(0); } else{ return(1);} } int main () { int numero,resultado; printf("Informe um numero:"); scanf("%d",&numero); resultado = verifica(numero); if(numero == 0){ printf("Esse numero e zero\n"); system("pause"); exit(0); } if(resultado == 0){ printf("Esse numero e par.\n");} else{ printf("Esse numero e impar.\n");} system("pause"); }//main
-
Muito obrigado mJi, fiz o que você falou e está funcionando. Abraço. int primo(int num) { int i; if (num == -1 || num == 0 || num == 1) { return(0); } for (i=2;i<=num/2;i++) { if (!(num%i)) return (0); } return(1); }
-
Olá mJi, muito obrigado pela explicação, porém eu estive testando e verifiquei que quando insiro os numeros: -1, 0, 1, ele diz que é numero primo, Por definição não são números primos. Como poderia fazer esse controle? no main ou dentro da função? Obrigado.
-
Opa, obrigado pela atenção mJi, fiz um código abaixo, porém não sei se está certo. Pois o enunciado do exercício pede para retornar um valor, e eu não sei como mostrar em tela, se o numero é primo ou não. #include <stdlib.h> #include <stdio.h> int primo(int num) { int i, aux=1; for (i=2; i<num; i++) { if (num % i == 0) { return (0); break; } else { return (1); break; } } } int main () { int numero,resp; printf("Digite um numero:"); scanf("%d",&numero); resp = primo(numero); printf("resultado\n",resp); system("pause"); }//main
-
Olá pessoal, não estou encontrando um algoritimo para achar numeros primos em C.Pesquisei na net sobre vários(crivo de eratóstenes,etc) mas não entendi. Queria fazer uma função que receba um numero qualquer, e retorna 1 se numero informado é primo, e 0 (zero) senão for primo. alguém saberia me dizer um simples? Obrigado.
-
Obrigado mJi, pela explicação.
-
mJi,tens como me explicar sobre esse ultimo post? Obrigado.
-
Seria comandos de condição if e switch?
-
Oii Caio, pelo que eu sei, é possível aumentar a tela "prompt de comando", quando executar seu programa clica bem em cima da tela(na parte onde fica os botões de minimizar,maximizar,fechar) e clica com botão direito em "propriedades",lá é possivel alterar o tamanho do buffer de tela, tamanho da janela, posição da janela, além de trocar a fonte da letra e também a cor de fundo da tela... Falow!!
-
Tenho uma struct que grava em um arquivo txt. Gostaria de saber como faço o "for" para listar todos passageiros do meu onibus,sendo que meu onibus tem 42 lugares livres, e consequentemente poderá ter até 42 pessoas cadastradas para cada onibus. //struct é um vet[1000] posições struct rodoviaria { int codigo,horapartida,poltrona[42]; char destinoviagem[100],passageiro[42]; }; Main() int main() { struct rodoviaria vet[1000]; } Informa nome do passageiro: printf("Informe nome do passageiro:"); fflush(stdin); fgets (vet[i].passageiro,100,stdin); fflush(stdin); Imprime printf("Informe codigo do onibus:"); scanf("%d",&bus); printf("\n"); for(i=0;i<1000;i++) // laço no arquivo { if(vet[i].codigo == bus) // se codigo do onibus for igual ao que foi digitado... { printf("Passageiros desse onibus: \n"); / imprime lista. for(?) { printf(vet[i].passageiro); printf("\n"); } } }
-
Oi mJi, tens como me dar uma ajuda? não estou conseguindo resolver. Obrigado.
-
ok, obrigado.
-
Olá mJi, aqui está a minha função grava void grava(struct rodoviaria a[1000],int fim) { FILE *arq; int teste,i; arq = fopen("arquivo.txt","wb"); // w = cria arquivo, b = modo binario if(arq != NULL) { for(i=0;i<fim;i++) { teste = fwrite(&a[i],sizeof(struct rodoviaria),1,arq); if (teste !=1) // retorna 1 gravou e 0 senao gravou { printf("erro ao salvar"); getch(); } } fclose(arq); } else { printf("erro ao abrir arquivo"); } }
-
Oi mJi, funcionou perfeitamente, muito obrigado pela ajuda! Te devo essa.
-
Olá mJi, Funcionou perfeitamente, muito obrigado mesmo pela sua ajuda.
-
Olá mJi, minha dúvida era apenas de como imprimir meu vetor daquela forma. Eu tentei, mas não consegui... for (i=0;i<42;i++) { printf("\t"); printf("%4d",v[i]); printf("\n"); }
-
Olá LacosTTe, é bem simples, tenho um vetor de inteiro e ele está declarado dentro do main assim: v[42], de uma dimensão, apenas queria imprimir ele conforme menceonei anteriormente, pois se eu fizer um "for(i=0;i<42;i++)" ele iria imprimir um numero de baixo do outro conforme abaixo. 1 2 3 4 5 ...
-
Boa tarde Pessoal, estou fazendo um exercicio de sistema de passagens e não estou conseguindo fazer um item. "Usuario digita o código do onibus desejado e o sistema lista em tela todas as poltronas vagas, Após listar,o usuario deverá informar o numero da poltrona vaga e o nome do passageiro,quando listado novamente o onibus ,a poltrona selecionada não devera aparecer em tela..." Minha dúvida é em relação a associar o onibus com a poltrona. Tenho um menu, e 2 funções que gravam e le de um arquivo.txt #include <stdio.h> #include <string.h> #include <stdlib.h> #include <ctype.h> #include <conio.h> struct rodoviaria { int codigo,horapartida,poltrona[42]; char destinoviagem[100]; }; //função grava void grava(struct rodoviaria a[1000],int fim) { FILE *arq; int teste,i; arq = fopen("arquivo.txt","wb"); // w = cria arquivo, b = modo binario if(arq != NULL) { for(i=0;i<fim;i++) { teste = fwrite(&a[i],sizeof(struct rodoviaria),1,arq); if (teste !=1) // retorna 1 gravou e 0 senao gravou { printf("erro ao salvar"); getch(); } } fclose(arq); } else { printf("erro ao abrir arquivo"); } } //função carrega int carrega(struct rodoviaria a[1000]) // abre arquivo e carrega no vetor { FILE *arq; int teste,percorre=0; struct rodoviaria registro; arq = fopen("arquivo.txt","rb"); if(arq != NULL) { while (!feof(arq)) // diferente do fim do arquivo? { teste = fread(®istro,sizeof(struct rodoviaria),1,arq); if (teste ==1) // se conseguiu ler { a[percorre] = registro; percorre++; } } fclose(arq); } return percorre; } int main() { struct rodoviaria vet[1000]; int ultimo=0, op=0,i,j,x,codonibus=0,qtd=0,onibus[100]; char nomedestino[100]; //carrega vetor for (i=0;i<42;i++) { qtd++; onibus[i] = qtd; } while(op !=4) { ultimo = carrega(vet); //abre arquivo e carrega para o vetor printf ("======================================MENU======================================\n"); printf ("1 - Cadastrar viagem :\n"); printf ("2 - Comprar passagem :\n"); printf ("3 - Listar Lista de passageiros :\n"); printf ("4 - Sair :\n\n"); fflush (stdin); scanf ("%d",&op); fflush (stdin); if(op==1) { printf("Informe Codigo do Onibus:"); scanf ("%d",&vet[ultimo].codigo); printf("Informe Destino de Viagem :"); fflush(stdin); fgets (vet[ultimo].destinoviagem,100,stdin); fflush(stdin); printf("Informe Horario de Partida da Viagem:"); scanf ("%d",&vet[ultimo].horapartida); ultimo++; grava(vet,ultimo); //função para gravar vetor no arquivo .txt onibus[i] = vet[ultimo].codigo; printf("\n"); printf("Cadastro Realizado com sucesso !\n\n"); system("pause"); } if(op==2) { printf("Informe Destino de Viagem :"); fflush(stdin); fgets(nomedestino,100,stdin); fflush(stdin); printf("\n"); for(i=0;i<ultimo;i++) { x = strcmp(vet[i].destinoviagem,nomedestino); if (x == 0) { printf ("=======================\n"); printf("Codigo do Onibus :%d\n",vet[i].codigo); printf("Horario de Partida :%d\n",vet[i].horapartida); printf("\n"); } } printf("Informe o codigo do onibus desejado:"); scanf("%d",&codonibus); for(i=0;i<ultimo;i++) // laço no arquivo { if(vet[i].codigo == codonibus) // se codigo do arquivo == codigo digitado { printf("\n"); for (?) {} } } printf("\n"); system("pause"); }// fim op==2
-
Olá pessoal, não estou conseguindo ordenar meu vetor de 42 posições com printf,conforme figura abaixo, alguém sabe como fazer? 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
-
Opa, seguinte em linguagem C, o vetor sempre começa na posição 0 (zero), ou seja se você tem um vetor de 100 posições ele vai contar de 0 até 99, pois começa armazenar sempre na posição 0. Se alterar o for como dissestes para (i=1;i<100;i++), ele vai contar da posição 1 até a 99 correto? porém se tu digitar por exemplo a seguinte palavra "ca", ele vai começar a contar da posição 1 em diante, que seria a letra "a", mas a tua letra "c" está na posição 0 (zero), entendeu ?