乘法和放大的数组比较减法

时间:2010-10-29 11:00:01

标签: c arrays

我有两个大数字(类型int)存储在数组中,大小至少为1000, 我想比较这两个数字,以获得一个比另一个更大的信息。我怎么能这样做?

实际上,我会做两件事

  1. 减去这两个
  2. 乘以这两个(我正在研究这个主题,确实,我找不到有效的算法;随时帮助我)

5 个答案:

答案 0 :(得分:2)

这将取决于数组中大数字的编码!

答案 1 :(得分:2)

  1. 比较长度:较大的数组代表较大的数字。
  2. 如果大小相等:数字比较直到不相同。

答案 2 :(得分:2)

确保您的阵列没有前导零。现在,如果它们的大小不同,则较大的数组必须保持较大的值(出于同样的原因,1000大于10)。否则,只需比较它们就像比较字符串(即从最高有效数字开始)。

答案 3 :(得分:2)

假设您有一个整数数组

int Marks[1000]={22,32,12,..............};

首先,你要对数组进行排序

int g,r,c;
for ( r=0; r <=999; r++)
   {
     for ( g=r+1;g<=1000;g++)
        {
            if ( Marks[r]  < Marks[g] )
               {
                   c=Marks[r];                // these 3 statements swap values
                   Marks[r] =Marks[g];          // in the 2 cells being compared  
                   Marks[g] = c;
                }
        }   
   } 

现在你发现最大的数字是Marks [0],第二个大的是Marks [1]

答案 4 :(得分:0)

int iArray[1000] = { /* ... */ };

int Subtract( int idx1, int idx2 )
{
    return iArray[idx1] - iArray[idx2];
}

// Return data type size is increased to prevent overflow.
long Multiply( int idx1, int idx2 )
{
    return (long)iArray[idx1] * (long)iArray[idx2];
}

int Compare( int idx1, int idx2 )
{
    if ( iArray[idx1] > iArray[idx2] )
    {
        return 1; // Value at index 1 is greater than value at index 2.
    }
    else if ( iArray[idx1] < iArray[idx2] )
    {
        return -1; // Value at index 1 is less than value at index 2.
    }
    else
    {
        return 0; // Values at both indexes are equal.
    }
}