• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

seltix

problema de escola...

11 mensagens neste tópico

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).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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);
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

mas a solucao que deste nao respeita aquelas especificaçoes do problema de bit a bit.... :S

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

loool deve andar tambem em coimbra de certesa loool obrigado =)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

pois não respeitei as regras agora é so adptares. :thumbsup:

não sei se te estavas a referir a mim mas sou de coimbra

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 :thumbsup:

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 =)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora