Escreva um programa que leia um número de quatro dígitos e que determine o número de ocorrências de cada dígito no número

Olá devs!
Estou com esse exercício por resolver e gostaria da vossa ajuda, eu já resolvi ele usando vector, estruturas de selecção e repetição. Porém agora gostaria de saber se tem como resolver sem fazer uso de vectores e estruturas de repetição, usando apenas estrutura de selecção if, else, switch?

Desde já agradeço a ajuda. :blush::pray:t3:

Eu faria assim:

#include <stdio.h>

int main() {
  int a, b, c, d;

  printf("Entre com um número de 4 digitos: ");
  scanf("%1d%1d%1d%1d", &a, &b, &c, &d);

  char numbers[10] = {0};

  numbers[a]++;
  numbers[b]++;
  numbers[c]++;
  numbers[d]++;

  if (numbers[0] > 0)
    printf("O 0 apareceu %d vezes\n", numbers[0]);
  if (numbers[1] > 0)
    printf("O 1 apareceu %d vezes\n", numbers[1]);
  if (numbers[2] > 0)
    printf("O 2 apareceu %d vezes\n", numbers[2]);
  if (numbers[3] > 0)
    printf("O 3 apareceu %d vezes\n", numbers[3]);
  if (numbers[4] > 0)
    printf("O 4 apareceu %d vezes\n", numbers[4]);
  if (numbers[5] > 0)
    printf("O 5 apareceu %d vezes\n", numbers[5]);
  if (numbers[6] > 0)
    printf("O 6 apareceu %d vezes\n", numbers[6]);
  if (numbers[7] > 0)
    printf("O 7 apareceu %d vezes\n", numbers[7]);
  if (numbers[8] > 0)
    printf("O 8 apareceu %d vezes\n", numbers[8]);
  if (numbers[9] > 0)
    printf("O 9 apareceu %d vezes\n", numbers[9]);

  return 0;
}
1 curtida

Muito obrigado pela sua ajuda! :innocent: :raised_hands: :clap::clap: :clap:

Você pode por favor reinscrever esse código sem usar vector?

Desculpe, esqueci da questão do array. Bom, então assim:

#include <stdio.h>

static void increment(int goal, int a, int b, int c, int d) {
  char count = 0;

  if (goal == a)
    count++;
  if (goal == b)
    count++;
  if (goal == c)
    count++;
  if (goal == d)
    count++;

  if (count > 0)
    printf("O %d apareceu %d vezes\n", goal, count);
}

int main() {
  int a, b, c, d;

  printf("Entre com um número de 4 digitos: ");
  scanf("%1d%1d%1d%1d", &a, &b, &c, &d);

  increment(0, a, b, c, d);
  increment(1, a, b, c, d);
  increment(2, a, b, c, d);
  increment(3, a, b, c, d);
  increment(4, a, b, c, d);
  increment(5, a, b, c, d);
  increment(6, a, b, c, d);
  increment(7, a, b, c, d);
  increment(8, a, b, c, d);
  increment(9, a, b, c, d);

  return 0;
}
1 curtida

#include <stdio.h>

int main() {

int a, b, c, d;   
int count1 = 1, count2 = 1, count3 = 1, count4 = 1;  

printf("Entre com um número de 4 digitos: ");  
scanf("%1d%1d%1d%1d", &a, &b, &c, &d);  

printf("\n\nNúmero digitado: %d%d%d%d \n\n", a, b, c, d);  

if (a == b) count1 += 1; // Verifica se o número a = b, caso seja igual acrescenta 1 a variavel count1
if (a == c) count1 += 1;  
if (a == d) count1 += 1;  

else if(a != b && a != c && a != d) {  
    if(count1 > 1) {  
        printf("O %d apareceu %d vezes \n", a, count1);
     } else { 
        printf("O %d apareceu %d vez \n", a, count1);
     } 
}

if (b == a) count2 += 1;
if (b == c) count2 += 1;
if (b == d) count2 += 1;

else if(b != c && b != d) {
    if(count2 > 1) {
        printf("O %d apareceu %d vezes \n", b, count2);
    } else {
        printf("O %d apareceu %d vez \n", b, count2);
    }
} 

if (c == a) count3 += 1;
if (c == b) count3 += 1;
if (c == d) count3 += 1;

else if(c != d) {
    if(count3 > 1) {
        printf("O %d apareceu %d vezes \n", c, count3);
    } else {
        printf("O %d apareceu %d vez \n", c, count3);
    }
}

if (d == a) count4 += 1;
if (d == b) count4 += 1;
if (d == c) count4 += 1; 

if(count4 > 1) {
     printf("O %d apareceu %d vezes \n", d, count4);
} else {
    printf("O %d apareceu %d vez \n", d, count4);
} 

return 0;

}

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

int main()
{

    int d1, d2, d3, d4, num;

    printf("Digita um numero que possui ate 4 digitos?\n");

    scanf("%d",&num);

    //Separa o numero nos respetivos digitos
    d4=num%10;
    num=num/10;
    d3=num%10;
    num=num/10;
    d2=num%10;
    num=num/10;
    d1=num%10;
    num=num/10;
  //Verifica e informa quantas vezes um dado digito repete no numero
    if (d1==d2 && d1==d3 && d1==d4)
        printf("Digito %d 4 vezes\n",d1);
    else if (d1==d2 && d1==d3) {
        printf("Digito %d 3 vezes\n",d1);
        printf("Digito %d 1 vez\n",d4);
    } else if (d1==d2 && d1==d4) {
        printf("Digito %d 3 vezes\n",d1);
        printf("Digito %d 1 vez\n",d3);
    } else if (d1==d3 && d1==d4) {
        printf("Digito %d 3 vezes\n",d1);
        printf("Digito %d 1 vez\n",d2);
    } else if (d2==d3 && d2==d4) {
        printf("Digito %d 3 vezes\n",d2);
        printf("Digito %d 1 vez",d1);
    } else if (d1==d2) {
        printf("Digito %d 2 vezes\n",d1);
        if (d3==d4) {
            printf("Digito %d 2 vezes\n",d3);
        } else {
            printf("Digito %d 1 vez\n",d3);
            printf("Digito %d 1 vez\n",d4);
        }
    } else if (d1==d3) {
        printf("Digito %d 2 vezes\n",d1);
        if (d2==d4) {
            printf("Digito %d 2 vezes\n",d2);
        } else {
            printf("Digito %d 1 vez\n",d2);
            printf("Digito %d 1 vez\n",d4);
        }
    } else if (d1==d4) {
        printf("Digito %d 2 vezes\n",d1);
        if (d3==d2) {
            printf("Digito %d 2 vezes\n",d2);
        } else {
            printf("Digito %d 1 vez\n",d2);
            printf("Digito %d 1 vez\n",d3);
        }
    } else if (d2==d3) {
        printf("Digito %d 2 vezes\n",d2);
        if (d1==d4) {
            printf("Digito %d 2 vezes\n",d1);
        } else {
            printf("Digito %d 1 vez\n",d1);
            printf("Digito %d 1 vez\n",d4);
        }
    } else if (d2==d4) {
        printf("Digito %d 2 vezes\n",d2);
        if (d3==d1) {
            printf("Digito %d 2 vezes\n",d3);
        } else {
            printf("Digito %d 1 vez\n",d1);
            printf("Digito %d 1 vez\n",d3);
        }
    } else if (d3==d4) {
        printf("Digito %d 2 vezes\n",d3);
        if (d1==d2) {
            printf("Digito %d 2 vezes\n",d2);
        } else {
            printf("Digito %d 1 vez\n",d2);
            printf("Digito %d 1 vez\n",d1);
        }
    } else {
        printf("Digito %d 1 vez\n",d1);
        printf("Digito %d 1 vez\n",d2);
        printf("Digito %d 1 vez\n",d3);
        printf("Digito %d 1 vez\n",d4);
    }

return 0;

}