使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,完成空出部分程序。函数funf int*arr,int n)的功能是将指定的有序数组压缩成各元素互不相同的有序数组,即相同数只保留一个,多余的被删除。并返回互不相同的元素的个

admin2021-05-06  30

问题 使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,完成空出部分程序。函数funf int*arr,int n)的功能是将指定的有序数组压缩成各元素互不相同的有序数组,即相同数只保留一个,多余的被删除。并返回互不相同的元素的个数。
    注意:不能修改程序的其他部分,只能修改fun()函数。
    i    #include
    2    int fun(int*a,int n)
    3    {
    4
    5    }
    6    void main()
    7    {
    8    int A[]={6,6,5,4,4,3,3,2,1);
    9    int  J  =fun(A,sizeof(A)/sizeof(int));
    10    for(int i=0;i    11    {
    12    std::cout<<<’  ’;
    13    }
    14    std::cout<    15    return ;
    16    }   

选项

答案1 intj ; 2 int k=0;//指向数组第一个元素 3 j=1 ; //指向数组第二个元素 4 while(j
解析 (1)该程序功能是将指定的有序数组压缩成各元素互不相同的有序数组,即相同数只保留一个,多余的被删除。它的解题思路,由第一个元素开始,利用循环将所有元素,依次与它后面的元素比较,如果不同存入数组。
    (2)从已给部分源程序的main主函数开始入手,核心函数int fun(int*a,int n)中的参数a为输入的数组,n为数组大小。
    [解题思路]
    (1)首先指向数组第一个元素a[k],然后将第二元素a啪与它比较,不同存入数组第二个元素(af++k])。
    (2)同时,将被比较的位置向后移动一位(i++)。循环直到数组的最后一个元素比较完毕。
转载请注明原文地址:https://jikaoti.com/ti/Nyh0FFFM
0

最新回复(0)