3

次のように生成された 10 個のランダム要素の配列があります。

             for ( j = 0;j<10;j++)
                {

                    file[j] = rand();

                    printf("Element[%d] = %d\n", j, file[j] );                  
                }

次に、2 つの要素を持つ新しい配列を生成します。配列の値は上記の配列から取得され、2 つの要素を持つ配列に配置されます。以下のコードサンプルのように:

         for(i = packet_count, j = 0; j < 2; ++j, ++i)
            {
                    packet[j] = file[i] ;
                    ++packet_count ;
                    printf("\npacket: %d", packet[j]);

            }
                printf("\nTransmit the packet: %d Bytes", sizeof(packet));

出力を以下に示します。

Telosb mote Timer start.
Element[0] = 36
Element[1] = 141
Element[2] = 66
Element[3] = 83
Element[4] = 144
Element[5] = 137
Element[6] = 142
Element[7] = 175
Element[8] = 188
Element[9] = 69

packet: 36
packet: 141
Transmit the packet: 2 Bytes

配列を実行して、次の 2 つの値を取得し、配列の最後の要素まで、パケット配列に配置します。

4

3 に答える 3

2

ここにはすでに多くの興味深いソリューションが掲載されていますが、もう 1 つ追加したいと思います。xor 演算子も使用できます。 c=c^1c の値を 0 と 1 の間で反転しますc=0,c^1=1c=1,c^1=0.

int i,c=0;
for(i=0;i<10;i++)
{
     packet[c] = file[i];         
     printf("\npacket: %d", packet[c]);
     if(c==1)
         printf("\nTransmit the packet: %d Bytes", sizeof(packet));
     c=c^1;
}

それが役立つことを願っています.ハッピーコーディング!!

于 2015-06-02T20:08:47.847 に答える