Ir ao conteúdo
  • Cadastre-se

Receber e multiplicar numero pelo seus algoritmos.


Posts recomendados

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
int contador(int n){
    if(n == 0) return 0;
    else return 1+contador(n/10);
}

int main(){
int n,vet[100];
int i,j,aux,s=vet[0];
                scanf("%d",&n);
                aux = contador(n);
                    printf("%d\n",aux);
                for(i=0;i<aux;i++){

                    vet[i] = n%10;
                    n/=10;

                    printf("%d ",vet[i]);
                }
                for(j=0;j<aux;j++){
                    s = s * vet[j];

                }
                printf("\n%d\n",s);


return 0;
}

Estou tentando desenvolver em C. Um programa que receba um numero e multiplique seus algoritimos porém nao estou conseguindo multiplicar. Alguem pode me ajudar?

Link para o comentário
Compartilhar em outros sites

O termo correto é algarismo ou dígito. E o programa é simples, seria algo assim:

#include <stdio.h>

int main(){
  int num, mult;
  printf("Digite o numero: ");
  scanf("%d%*c", &num);
  for (mult=1; num != 0; num=num/10)
    mult = mult*(num%10);
  printf("Resultado: %d\n", mult);
  return 0;
}

 

Mas talvez assim seja mais fácil de entender:

#include <stdio.h>

int main(){
  int num, mult;
  printf("Digite o numero: ");
  scanf("%d%*c", &num);
  mult=1;
  while (num != 0){
    mult = mult*(num%10);
    num=num/10;
  }
  printf("Resultado: %d\n", mult);
  return 0;
}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

11 minutos atrás, Pedro Henrique Faria Teixe disse:

Valeu cara, mas tipo, no meu programa eu separei o numero em cada ponto do vetor e tentei multiplicar, e tipo saia um numero muito *****, voce sabe o porque?

O único problema no seu programa está na inicialização da variável "s", que armazena a multiplicação, onde você colocou que s=vet[0], e deveria ser inicializado em 1 (s=1). Fazendo essa modificação o programa funciona corretamente.

 

Obs: Note que ali no inicio do programa vet[0] ainda não recebeu nenhum valor, apenas foi reservado o local na memória, mas ainda não foi atribuído nenhum valor, então s=vet[0] vai pegar qualquer valor lixo (deixado por algum outro programa usado anteriormente) que está lá nessa posição da memória. Então seu programa pega isso e multiplica pelos algarismos gerando um resultado aleatório/imprevisível.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!