Ir para o conteúdo
seltix

problema de escola...

Mensagens Recomendadas

seltix    0
seltix

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pakito87    0
pakito87

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pedrosorio    5
pedrosorio

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.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
seltix    0
seltix

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pedrosorio    5
pedrosorio

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.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pakito87    0
pakito87

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

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


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade