bosnia Posted November 22, 2009 at 05:32 PM Report Share #297204 Posted November 22, 2009 at 05:32 PM 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; } Link to comment Share on other sites More sharing options...
Baderous Posted November 22, 2009 at 05:35 PM Report Share #297205 Posted November 22, 2009 at 05:35 PM 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 '=='. Link to comment Share on other sites More sharing options...
bosnia Posted November 22, 2009 at 05:38 PM Author Report Share #297206 Posted November 22, 2009 at 05:38 PM nao percebi...a tua explicação XD Link to comment Share on other sites More sharing options...
scorch Posted November 22, 2009 at 05:47 PM Report Share #297207 Posted November 22, 2009 at 05:47 PM 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; } PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum. Link to comment Share on other sites More sharing options...
bosnia Posted November 22, 2009 at 05:54 PM Author Report Share #297208 Posted November 22, 2009 at 05:54 PM com matrizes tambem nao pode ser XD o prof nao quer Link to comment Share on other sites More sharing options...
scorch Posted November 22, 2009 at 06:00 PM Report Share #297209 Posted November 22, 2009 at 06:00 PM Se é um exercício onde é que tens dificuldades? Ser mais específico ajudava. 🙂 PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum. Link to comment Share on other sites More sharing options...
bosnia Posted November 22, 2009 at 06:03 PM Author Report Share #297212 Posted November 22, 2009 at 06:03 PM como calcular os zeros por exemplo introduzo 2009 e ele diz-me que tenho 2 zeros Link to comment Share on other sites More sharing options...
Rui Carlos Posted November 22, 2009 at 06:06 PM Report Share #297214 Posted November 22, 2009 at 06:06 PM 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. Rui Carlos Gonçalves Link to comment Share on other sites More sharing options...
Baderous Posted November 22, 2009 at 06:12 PM Report Share #297215 Posted November 22, 2009 at 06:12 PM 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. Link to comment Share on other sites More sharing options...
bosnia Posted November 22, 2009 at 06:41 PM Author Report Share #297218 Posted November 22, 2009 at 06:41 PM obrigado pela ajuda.....nao tava mesmo a ver como se fazia este exercicio 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