2014-12-08 2 views
-4

Как найти повторяющуюся цифру и экспортировать его,C, как найти повторяющуюся цифру

Введите номер: 226644 повторный разряд: 2 6 4

Я пытался решить эту программу, но я failured . Я написал свое кодирование, спасибо за вашу помощь!

#include<stdio.h> 
#include<stdbool.h> 
int main(){ 
    int i, j, n ; 
    int a[10], m = 10; 
    bool b[10] = {false}; 
    printf("Enter your digit:"); 
    scanf("%d", &n); 

    while(n > 0){ 
     j = n % 10; 
     if(b[j]){ 
      printf("The repeated digit is:"); 
      if(m != j){ 
       m = j; 
       printf("%3d", m); 
      } 
      b[j] = true; 
      n /= 10; 
     } 
    } 

    if(m == 10){ 
     printf("There is no repeated digit!"); 
    } 

    return 0; 
} 
+0

Пожалуйста, объясните, что вы хотите достичь, и что не так! – urzeit

+0

'bool b [10] = {false};' будет инициализировать только нулевой элемент. Остальное не будет. Неопределенное время выполнения. – Bathsheba

+0

Вы хотите написать что-то о ожидаемом поведении, тестовых примерах ... – harper

ответ

1

Переместить n /= 10; один уровень вверх - в петле while, а не в суб- if. Теперь у вас бесконечный цикл.

0

В дополнение к коррекции i486'S, также линии

  b[j] = true; 

должен быть перемещен из (после) if(b[j]){…} блока; в противном случае b[j] когда-либо будет true.

Смежные вопросы