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

pessantiago

ajuda numeros

10 mensagens neste tópico

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 '=='.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se é um exercício onde é que tens dificuldades? Ser mais específico ajudava. :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

como calcular os zeros por exemplo introduzo 2009 e ele diz-me que tenho 2 zeros

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

obrigado pela ajuda.....nao tava mesmo a ver como se fazia este exercicio

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