Ir para o conteúdo
pessantiago

ajuda numeros

Mensagens Recomendadas

pessantiago    1
pessantiago

ver quantos zeros tem numero introduzido pelo utilizador

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int n,i,conta;
conta=0
    printf("introduza um numero ");
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        if(n=0)
        conta=conta+1
        
    }
    printf("numero de zeros introduzidos %d",conta)
    return 0;
}

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Baderous    31
Baderous

Isso tem aí muitos erros. Primeiro penso que o que queres é contar o número de dígitos iguais a 0 pertencentes a um número introduzido pelo utilizador. Tens 2 maneiras de fazer isto: ou lês o número como uma string e, de seguida, percorre-la e em cada posição verificas se o caracter corresponde ao dígito 0, ou então lês como inteiro e utilizas as divisões e resto das divisões por 10 sucessivas para iterares sobre cada algarismo e fazes a comparação. A comparação não é feita com o sinal '='. Este sinal é de atribuição de valores a variáveis. O sinal de comparação é o '=='.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
scorch    19
scorch

Tenta isto.

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int n,i,conta;
    int x, arr[50], div, div2, pass;
    conta=0;

    printf("introduza um numero ");
    scanf("%d", &n);

for (div=10,div2=1,pass=0; pass < 51; div=div*10,div2=div2*10,pass++){
	arr[pass] = x % div;
	arr[pass] = arr[pass] / div2;
	if (x / div == 0){
		break;
	}
}
   

    for(; pass >= 0;pass--){
            if(arr[pass] == 0){
                conta = conta + 1;
            }
    }

    printf("numero de zeros introduzidos %d", conta);
    return 0;
}

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Rui Carlos    311
Rui Carlos

com matrizes tambem nao pode ser XD o prof nao quer

Óptimo. Tens aqui um bom exercício: alterar a implementação de forma a que deixes de precisar de matrizes :)

Basta no primeiro for, em vez de armazenares os valores, verificares se são iguais a 0.

Adicionalmente, também podes tentar remover aquele break (alterando a condição de paragem do ciclo), e tentar perceber o código de forma a simplificá-lo.

O objectivo do fórum não é propriamente resolver exercícios pelos outros.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Baderous    31
Baderous

Aqui está o que eu quis explicar:

#include <stdio.h>

int main(void) {
    int n, aux, c=0;
    scanf("%d",&n);
    while (n) {
        aux = n;
        n/=10;
        if (aux%10==0)
            c++;
    }
    printf("Zeros: %d\n",c);
    return 0;
}

À medida que vais dividindo o número por 10, podes ir verificando se o resto da divisão (que te dá o valor dos sucessivos dígitos do número, da direita para a esquerda) é igual a 0. Se tiveres dúvidas, faz as contas à mão, como na primária.

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