• 请补充函数fun(),该函数的功能是:从键盘输入一个下标n,把数组aa中比元素aa小的元素放在它的左边,比它大的元素放在它的右边,排列成的新数组仍然保存在原数组中。
    例如,数组aa={33,67,42,58,25,76,85,16,41, 56},输入3。
    结果输出“33,42,25,16,41,56,58,67,76,85”。
    注意:部分源程序给出如下。
    请勿改动主函数main和其他函数中的任何内容,仪在函数fun()的横线上填入所编写的若干表达式或语句。
    试题程序:
    include<stdio.h>
    define N 10
    void fun(int aa[],int n)
    {
    int i,j=0,k=0,t;
    int bb;
    t=aa;
    for(i=0;i<N;i++)
    {
    if(aa>t)
    bb[j++]=aa;
    if(aa<t)
    aa[k++]=aa;
    }
    【 】;
    for(i=0;【 】;i++, k++)
    aa=bb;
    }
    main()
    {
    int i,n;
    int aa={33,67,42,58,25,76,85,16,41,56};
    clrscr();
    printf("\n*** original list ***\n");
    for(i=0;i<N;i++)
    printf("%4d"/aa);
    printf("\n suffix n\n");
    scanf("%d",&n);
    fun(aa,n);
    printf("\n*** new list ***\n");
    for (i=0;i<N; i++)
    printf("%4d", aa);
    }

    正确答案:aa[k++]=tijaa[k++]=tij 解析:第一空:首先将aa赋值给t,通过for循环,将比t大的数暂存在数组bb中,将比t小的数保存在数组aa中,此时应该将t存入数组aa中,正好放在那些小于t的元素后面。第二空:最后将数组bb中的元素存入数组aa中,放在t的后面。变量j记录了大于t的元素的个数,所以变量i的取值范围是从0到j-1。
  • 2021年07月15日 22时05分来自  问答库 >> 计算机类
  • 评论 0
  • 手机玩微博

    手机版 手机端
    Powered by 日新微博 © 2018 - 2020 日新网