2016-11-17 7 views
-1

どのように私はCの2桁を比較し、私のプログラムの各長さの交差点を見つけることができますか?私は次のコードを持っていますが、なぜそれが失敗しているのかわかりません。私がしようとしているのは、2つの数字を比較し、それぞれの数字が互いに一致するかどうかを調べることです。もしそうであれば数字を同じ数字に設定しますが、数値が異なると0に設定します。 たとえば、number1 = 2421、number2 = 2412の場合、返される数値は2400になります。Cで2ロングの交差点を見つけるには?

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

関連する問題