将数组中的元素复制到另一个数组并计算C中字符的数量

时间:2016-01-11 19:42:06

标签: c

我是C的新手,所以我为提出愚蠢的问题道歉。

我需要将某个元素从一个数组复制到另一个元素,但是我无法使其工作并获得随机数。在这种情况下,我需要将第一个数组中最小的一个元素复制到第二个元素之后的所有元素。

我无法弄清楚的另一件事是计算某个符号使用次数的函数。我需要找到我在阵列中使用最大奇数位的次数。

这是我到目前为止所做的代码。我希望你能理解其中的大部分内容:

<resources>
    <color name="primaryDark">#000</color>
    <color name="primary">#111</color>
    <color name="accent">#ffd400</color>

    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimaryDark">@color/primaryDark</item>
        <item name="colorPrimary">@color/primary</item>
        <item name="colorAccent">@color/accent</item>
        <item name="android:windowBackground">@color/primary</item>
        <item name="android:colorBackground">@color/primary</item>
    </style>
</resources>

1 个答案:

答案 0 :(得分:1)

  

我需要找到我使用过最大奇数位的次数   一个数组。

拳头从最后开始排序,找到最大的奇数。您可以通过number%2==1找到奇数。最后计算相同的数字:

// sort the array
sort(b, n); // sort function from your questions code

// find the biggest odd number
int i = n-1;
while ( i >= 0 && b[i]%2 == 0 )
{
    i --;
}

// count the biggest odd number
count = 0;
int j = i;
while ( j >= 0 && b[i]==b[j] ) // note first time i==j ! 
{
    count ++;
    j --;
}

如果您不想对数组进行排序,请使用以下命令:

// find the biggest odd number
int oddInx = -1;
for ( int i = 0; i < n; i++ )
{
    if ( b[i]%2 == 1 && ( oddInx < 0 || b[i] > b[oddInx] ) )
        oddInx = i;
}

// count the biggest odd number
count = 0;
if ( oddInx >= 0 )
{
    for ( int i = 0; i < n; i++ )
    {
        if ( b[i] == b[oddInx] )
            count ++;
    }
}