-4

非常に単純な質問かもしれませんが、array[0] と array[1] にある 2 つの int 値を 1 つの整数にコピーする必要があります。

たとえば、配列 [0] = 1 および配列 [1] = 6 の場合、整数を「16」に等しくする必要があります。配列のすべての要素の範囲は 0 ~ 9 です。

私にはどんなチャンスがありますか?本当にありがとうございました!

4

2 に答える 2

2

array[0] は常に 10 の位を表し、array[1] は常に 1 の位を表しますか? array[0] または array[1] は、9 より大きい値または 0 より小さい値を持つことはありますか? 3 桁または 4 桁の数値を表す配列 [2] または配列 [3] はありますか?

上記の質問に対する答えがイエス、ノー、ノーの場合、答えは簡単な算数ではないでしょうか?

int result = (array[0] * 10) + array[1];

データが事前に範囲チェックされていない場合は、そのステップを追加する必要があります。データが事前に範囲チェックされている場合でも、確実にするためにそのステップを追加することを検討する必要があります。

上記の例では、'10' もマジック ナンバーです。10 をハードコードするのではなく、配列のサイズを基準にするのがおそらく賢明でしょう。array[2] がある場合を考えてみましょう。. . 配列[n]。じゃあ何?

于 2012-11-18T22:23:02.993 に答える
1

これを行う簡単な方法は、整数を文字列に変換し、それよりも接触してから、今度は文字列から int に再度変換することです。

char s1[30]; // String that will hold the first integer
char s2[15]; // String that will hold the second integer

int intResult;

最初に int を文字列に変換します。

sprintf(s1, "%d", array[0]);
sprintf(s2, "%d", array[1]);

2 つの文字列を結合するよりも:

s1 = strcat(s1,s2);

次に、文字列の結果を整数に変換します。intResult = atoi(s1);

于 2012-11-18T22:29:34.533 に答える