seltix Posted March 11, 2009 at 12:56 AM Report Share #249804 Posted March 11, 2009 at 12:56 AM viva a todos, alguem me podia ajudar a resolver este problema? obrigado a todos. 2.3 Somar bits Escreva um programa que receba um núumero do utilizador e que indique quantos dos seus bits são 1. Deverá utilizar os operadores bit a bit & e >> (respectivamente e bit a bit e deslocamento para a direita). Link to comment Share on other sites More sharing options...
pakito87 Posted March 11, 2009 at 01:57 AM Report Share #249807 Posted March 11, 2009 at 01:57 AM deixa-me ver se percebi tu queres receber um numero e verificar quantos 1's existe nesse numero? se for isso é fácil só tens que decompor usando divisões e obtendo o resto da divisão. nesse ciclo em que decompões o numero tens que fazer uma comparação que caso seja verdadeira incrementa o contador. esse contador vai-t dar o numero de vezes que se repete o 1. fiz isto é simples, só não sei se vais perceber como funciona; #include <stdio.h> int main () { int n,resto=0,div=0,conta=0; printf("Insira um numero \n"); scanf("%d",&n); while (n>0){ div=n/10; printf("%d\n",div); resto=n%10; printf("%d\n",resto); n=div; if(resto==1) conta++; } printf("O numero 1 repete-se %d vezes",conta); } Link to comment Share on other sites More sharing options...
seltix Posted March 11, 2009 at 03:28 PM Author Report Share #249870 Posted March 11, 2009 at 03:28 PM percebo sim obrigado =) Link to comment Share on other sites More sharing options...
seltix Posted March 11, 2009 at 03:30 PM Author Report Share #249872 Posted March 11, 2009 at 03:30 PM mas a solucao que deste nao respeita aquelas especificaçoes do problema de bit a bit.... :S Link to comment Share on other sites More sharing options...
pedrosorio Posted March 11, 2009 at 07:14 PM Report Share #249954 Posted March 11, 2009 at 07:14 PM Respondi a uma dúvida igual a esta aqui no fórum há bem pouco tempo. Estava era na secção de C-Dúvidas e ajudas (ao contrário desta...) http://www.portugal-a-programar.pt/index.php?showtopic=25408 Aconselho-te a pensar depois de leres cada um dos meus posts em vez de ires directamente para a solução. Não respondo a dúvidas por mensagem. Link to comment Share on other sites More sharing options...
seltix Posted March 11, 2009 at 10:05 PM Author Report Share #250017 Posted March 11, 2009 at 10:05 PM loool deve andar tambem em coimbra de certesa loool obrigado =) Link to comment Share on other sites More sharing options...
pakito87 Posted March 11, 2009 at 10:21 PM Report Share #250023 Posted March 11, 2009 at 10:21 PM pois não respeitei as regras agora é so adptares. 👍 não sei se te estavas a referir a mim mas sou de coimbra Link to comment Share on other sites More sharing options...
pedrosorio Posted March 11, 2009 at 10:22 PM Report Share #250025 Posted March 11, 2009 at 10:22 PM Devia estar a referir-se ao utilizador que fez a mesma pergunta no outro tópico. P.S.: pakito87, não só o teu programa não faz o que é pedido (i.e. contar o número de bits igual a 1), como não é em nada análogo ao que ele quer, pelo que seria difícil pegar na tua solução e adaptá-la. Não respondo a dúvidas por mensagem. Link to comment Share on other sites More sharing options...
seltix Posted March 11, 2009 at 11:31 PM Author Report Share #250049 Posted March 11, 2009 at 11:31 PM estava mesmo a referir me ao outro utilizador o problema é identico e tambem pede para depois fazer entrada de valores ate ser introduzido zero exatamento como na folha de exercicios 👍 mas ja consegui solucionar o problema pelo menos para este faltam os restantes... realmente o meu dominio é mais po PHP e Script... ja agora nao sou de coimbra apenas tou ca a estudar no polo 2 =D ja agora nao sei se fica mal perguntar isto no mesmo topico mas como posso calcular o valor da soma dos digitos de um numero inteiro, do genero 64 seria 6 + 4 = 10. Obrigado =) Link to comment Share on other sites More sharing options...
pedrosorio Posted March 12, 2009 at 07:14 AM Report Share #250083 Posted March 12, 2009 at 07:14 AM Teoricamente devias perguntar noutro tópico (e já agora, tenta dar nomes aos tópicos que identifiquem melhor o problema/dúvida). Mas a verdade é que essa pergunta já foi praticamente respondida pelo pakito87. Se olhares para o código dele está praticamente feito aquilo que tu queres. Não respondo a dúvidas por mensagem. Link to comment Share on other sites More sharing options...
pakito87 Posted March 12, 2009 at 07:51 PM Report Share #250368 Posted March 12, 2009 at 07:51 PM Sim porque eu pensava que ele queria verificar quantos 1 havia numa sequencia de inteiros ou seja 123251 dar dois 1's.. O codigo que pus em cima se tirares os printfs no while e o if que não esta a fazer nada tens o que acabas-te de perguntar. ao fazeres o resto e divisões decompões um numero facilmente. Eu estou no ISEC em coimbra tb Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now