2016-11-17 1 views
-1

Как бы сравнить 2 цифры в C и найти пересечение каждого длинного в моей программе? У меня есть следующий код, но я не уверен, почему он неисправен. То, что я пытаюсь сделать, это сравнить 2 числа и посмотреть, соответствуют ли каждая цифра друг другу. Если они это сделают, они будут устанавливать цифру на тот же номер, но если они будут разными, она установит эту цифру в 0. Например, если у меня было число1 = 2421 и number2 = 2412, тогда возвращаемое число было бы 2400.Как найти перекресток 2 длинный в C?

long set_intersect(long number1, long number2) 
    { 
     int count=0; 
     char setone[18],settwo[18]; 
     int final[18]; 
     long countone,counttwo; 
     while((number1) && (number2)) 
     { 
       countone = number1 %10; 
       setone[count] = countone; 
       counttwo = number2% 10; 
       settwo[count] = counttwo; 
       number1 = number1/10; 
       number2 = number2/10; 
       count++; 
     } 
     for(int i= 0 ; i< count; i++) 
     { 
         if(setone[i] == settwo[i]) 
         { 
           final[i] = setone[i]; 
         } 
         else 
         { 
           final[i] = 0; 
         } 
     } 
     for(i=0 ; i < count ; i++) 
     { 
       printf("%i\n",final[i]); 
     } 
} 

ответ

2

Неопределенное поведение из-за неинициализированного значения для count.

int count = 0; 
+0

поэтому после редактирования кода код не распечатывает правильное пересечение. Есть ли что-нибудь еще в коде, вызывающем это? – WasabiCannon

+1

Возможно. Зависит от того, что вы подразумеваете под «правильным». Я полагаю, что если бы вы дали 123356 и 12345, он распечатал 123050. Это «правильно»? – paddy

+0

Да, это правильно – WasabiCannon

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