JesusVS Postado Outubro 4, 2009 Denunciar Share Postado Outubro 4, 2009 (editado) então, eu n sou esse cara que criou o tópico, porem vou utilizar ele caso n haja problemas...alguém pode me dizer como eu posso provar que o numero digitado é inteiro???n me lembro qual comando retorna o resto da divisao para fazer isso =/ Editado Outubro 4, 2009 por JesusVS Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Outubro 4, 2009 Denunciar Share Postado Outubro 4, 2009 Se você declarar uma variável como inteiro ela só poderá conter o valor de um inteiro...int x; printf("Digite um inteiro: "); scanf("%i",&x); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JesusVS Postado Outubro 4, 2009 Autor Denunciar Share Postado Outubro 4, 2009 (editado) ta, mais e se eu pedir um numero inteiro, e o usuário digitar 1,3 intendeu?mesmo que eu declare a variavel como float, eu presiso fazer um else if(aqui que vou testar o numero digitado para ver se ele é ou n inteiro)...se n me engano é o DIV que retorna o resto da divisao.....o programa roda certo e tudu +, porem eu presiso que o programa só saia do laço for se o usuario digita um numero inteiro,ta ae ele:float calculo (int n) { float s; s=n+1; return (s); } main() { float n,result; int x; x=0; while(x!=1) { printf("Digite um valor inteiro e positivo para n:"); scanf("%f",&n); if (n<0) { printf("\nEu falei positivo..."); } else if(AQUI TA O PROBLEMA,tentei algumas coisas, porem n consegui ainda) { printf("\nEu falei inteiro..."); } else { x++; } } result=calculo(n); printf("O resultado é:%f",result); getch(); } Editado Outubro 4, 2009 por JesusVS Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Outubro 4, 2009 Denunciar Share Postado Outubro 4, 2009 Para o resto de divisão entre inteiros deve-se usar o operador %.Mas se você quer apenas inteiros ao invés de declarar a variávei como float basta que ela fique como int. No caso de apenas positivos, utilize o modificador unsigned. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JesusVS Postado Outubro 4, 2009 Autor Denunciar Share Postado Outubro 4, 2009 já declarei a variavel como int antes, porem o programa roda, e o numero n sai correto, é um exercicio que tenho que fazer para a prova, e é obrigado que o usuario digite numero inteiro, caso digite numeros quebrados (1,2 etc..) o programa deve fazer com que o usuario digite o numero novamente ate que digite um numero inteiro.como utilizo o modificador unsigned??? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Outubro 4, 2009 Denunciar Share Postado Outubro 4, 2009 Agora entendi...Para utilizar o unsigned é assim:unsigned int variavel; E o seu código pode ficar assim: #include <stdio.h> int main(){ unsigned int x=0; //esse é nosso inteiro float y=0.0; //essa variável só irá fazer os testes do{ printf("Digite um inteiro positivo: "); scanf("%f",&y); x=y; }while(x!=y); printf("Numero final: %d",x); }O que ocorre é o seguinte: utilizei uma variávei auxiliar para guardar os valores como float e depois copiei esse valor para x, que é unsigned int.Se x for diferente de y, ocorreu algum problema ao fazer o casting e devemos continuar, já que y não é um inteiro positivo. Caso contrário (x=y), o número é válido. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JesusVS Postado Outubro 5, 2009 Autor Denunciar Share Postado Outubro 5, 2009 (editado) consegui, vlw mesmo pela ajuda cara =Do modificador unsigned é apenas para testar numero positivos?este exercicio já fiztenho duvida em outro agora^^como faco para descobrir raiz quadrada? e como elevaria um numero ao quadrado em c++?eu tenho no meu caderno que é sqrt, porem esta errado, pode me dizer como é???s=(SQRT(x2-x1)+(y2-y1));outra pergunta, tenho que executar esta soma S = 1 + ½ + 1/3 + ¼ + 1/5 + 1/N pode me ajudar? Editado Outubro 5, 2009 por JesusVS Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Outubro 6, 2009 Denunciar Share Postado Outubro 6, 2009 Para raiz quadrada use a função sqrt da math.h.Exemplo:printf("Raiz de 2: %f",sqrt(2.0)); Para potência utilize a função pow, também contida na mesma biblioteca. Exemplo: printf("Quadrado de 2: %f",pow(2,2)); Supondo que queria obter outras raízes ainda pode fazer assim: printf("\n\nRaiz quinta de 243: %f",pow(243.0,(float)1/5));Obs.:Separei seus posts do tópico principal já que a discursão estava tomando outro rumo.O tópico pode ser marcado como Resolvido ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 OSJunior Postado Outubro 8, 2009 Denunciar Share Postado Outubro 8, 2009 Um modo de verificar qual é o tipo da variável num programa em tempo de execução é utilizando o sizeof(). ;) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JesusVS Postado Outubro 8, 2009 Autor Denunciar Share Postado Outubro 8, 2009 eu tentava usar o sqrt no calculo já ^^nunca dava certo..o compilador achava que era uma variavel e pedia p declarar...porem agora esta certomt obrigado aos dois =Dvlw mesmo pela ajuda... Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
JesusVS
então, eu n sou esse cara que criou o tópico, porem vou utilizar ele caso n haja problemas...
alguém pode me dizer como eu posso provar que o numero digitado é inteiro???
n me lembro qual comando retorna o resto da divisao para fazer isso =/
Editado por JesusVSLink para o comentário
Compartilhar em outros sites
9 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.