按降序排列数组中的奇数

时间:2018-10-25 10:10:30

标签: c arrays sorting srand

我正在编写将要执行的代码:

  1. 打印随机数数组
  2. 将其升序排列
  3. 从该数组中找到奇数
  4. 将奇数按降序排列。

我已经完成了前三个,但是我不能将奇数按降序排列。该程序将随机数排序为降序,而不仅仅是奇数。请帮我。谢谢。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
    int size,i,j,temp;
    int a[50];

    printf("Enter array size| ");
    scanf("%i",&size);

    srand(time(0));

    printf("\nThe Random Numbers| \n");
    for(i=0;i<size;i++){
        a[i] = rand()%100;
        printf("%i, ",a[i]);
    }

    for (i=0;i<size;++i)
    {
        for (j=i+1;j<size;++j)
        {
            if (a[i]>a[j])
            {
                temp=a[i];
                a[i]=a[j];
                a[j]=temp;
            }
        }
    }
    printf("\n\nThe Ascending Order of Random Numbers| \n");
    for (i=0;i<size;++i)
        printf("%d, ", a[i]);


    printf("\n\nThe Odd Numbers| \n");
    for(i=0;i<size;i++){
        if(a[i]%2!=0){
            printf("%i, ",a[i]);
        }
    }

    for(i=0;i<size;i++){
        for(j=i+1;j<size;j++){
            if(a[i]<a[j])
            {
                temp=a[i];
                a[i]=a[j];
                a[j]=temp;
            }
        }
    }

    printf("\n\nThe Descending Order of Odds| \n");
    for(i=0;i<size;i++)
        printf("%d ",a[i]);

    return 0;
}

1 个答案:

答案 0 :(得分:2)

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"></head><body></body><script>document.getElementsByTagName("body")[0].innerHTML = "<script>console.log('hi there')</script>\n<div>hello world</div>\n"</script></html> 视为数组n,并查看以下伪代码:

length -1

在这种情况下,您将忽略偶数并仅修改包含奇数值的数组位置。

这是for each i in n { if a[i] even: continue for each j in n { if a[j] even: continue if(a[i]<a[j]) swap(a[i], a[j]) } } 代码:

c