首页 > 用户发贴区 > 编程问题提问区 > 求解一道C语言题目
2009
12-27

求解一道C语言题目

 


实验步骤:

1.  编写下列函数实现相应功能:

  ListInsert(int L[],int i,int e)   在数组L中第i个位置前插入新的数据元素e,list的长度加1

     ListDelete(int L[],int i)   删除数组L的第i个数据元素,list长度减1

     LocateElem(int L[],int e)  返回L中第1个比e大的数据元素的下标。

2。

编写主函数,实现以下功能:

定义一个数组A10个整型数据读入,建立一个有序非递减数组A(要求逐个读入数据,调用函数LocateElem找到插入位置后,再调用函数ListInsert将其插入到相应位置)       

    输出数组A

    调用函数ListDelete删除数组A中所有偶数。 

 再输出数组A

 


求解一道C语言题目》有 4 条评论

  1. zjhkobe 说:

    我是一名编程爱好者!目前处于初学阶段.感谢各位高手能给予我一些帮助!谢谢!

  2. hiroki 说:

    这是线性表的问题   数据结构  就按照步骤一步一步来

  3. chameleons 说:

    你要是用的C语言。这链表的大小应该再用一个参数传进ListInsert函数。不然你怎么知道要插入位置的后面有多少个数?你这是C#的题吧?还是说链表的长度存在一个全局变量里?

  4. chameleons 说:

    主函数可以这样遍。那几个辅助函数,感觉你没说清楚噢,到底是不是有个全局变量存链长的?

    void main(){
      int a[10];
      int i, j, length, index, temp;
      int flag;

      for(i=0; i<10; i++){
        cin>>temp;
        index = LocateElem(a, temp);
        ListInsert(a, index, temp);
      }

      for(i=0; i<10; i++){
        cout<<a<<” “;
      }
      cout<<”\n”;
     
      i = 0;
      j = length = 10;
      while(1){
        if (a
    %2==0){
          ListDelete(a, i);
          length–;
        } else {
          i++;
        }
        j++;
        if(j>=10) break;
      }

      for(i=0; i<length; i++){
        cout<<a
    <<” “;
      }
      cout<<”\n”;
    }

留下一个回复