如何按降序对数组进行排序

时间:2016-12-07 16:28:59

标签: arrays

我有这段代码,但这并没有向我显示所需的结果。即合并2个数组并按降序打印。我想合并2个排序的数组,从用户输入。用户也会告诉数组元素的大小,然后我的程序应该合并并降序排序并打印

int main()
{

int num1,num2,i,tem;

printf("Number of elements in first array:");
scanf("%d",&num1);

printf("Number of elements in second array:");
scanf("%d",&num2);

int array1[num1],array2[num2],merge[num1+num2];

printf("Elements for array 1 \n");

for ( i = 0; i < num1; i++)
{
    printf("Element:"); 
    scanf("%d",&array1[i]);
}

printf("Elements for second array\n");

for ( i = 0; i < num2; i++)
{
    printf("Element:");
    scanf("%d",&array2[i]);
}
for ( i = 0; i < num1; i++)
{
    merge[i] = array1[i];
}
for ( i = 0; i < num2; i++)
{
    merge[i+num1] = array2[i];
}
for ( i = 0; i < num1 + num2; i++ ) 
{
    if ( merge[i] < merge[i+1] )
    {
        tem = merge[i];
        merge[i] = merge[i+1];
        merge[i+1] = tem;
    }
}

printf("Merge:");

for ( i = 0; i < num1 + num2; i++ )
{
   printf("%d  ",&merge[i]);
}

return 0;

}

2 个答案:

答案 0 :(得分:0)

int count1 = 10;
int count2 = 15;

int arNums1[];
int arNums2[];
int arMergeNums[];

arNums1 = new int[count1];
arNums2 = new int[count2];
arMergeNums = new int[count1 + count2];

//POPULATE YOUR FIRST TWO ARRAYS HERE...

//FILL YOUR MERGED ARRAY LIKE THIS:
for (int i = 0; i < (count1 + count2); i++)
{
    if ( i < count1 )
        arMergeNums[i] = arNums1[i];
    else arMergeNums[i] = arNums2[i];
}

//THEN SORT IT LIKE THIS:
for (int i = 0; i < (count1 + count2); i++)
{
    for (int j = i + 1; j < (count1 + count2); j++)
    {
        if (arMergeNums[i] < arMergeNums[j])
        {
            int temp = arMergeNums[i];
            arMergeNums[i] = arMergeNums[j];
            arMergeNums[j] = temp;
            temp = null;
        }
    }
}

那是......

答案 1 :(得分:0)

$(document).ready(function(){
  var cars = [4,3,9,6];
 for(i=0;i<cars.length;i++){
 //var carsrev=cars[cars.length-i-1];
  //alert(carsrev);
  $('<li>'+cars[cars.length-1-i]+'</li>').appendTo("ul.demo");
 //alert($("ul.demo li").length);
  }
 });

// Out Put是6 9 3 4而不是9 6 4 3它只是反向