正文

钱能的《C++程序设计教程》序列七:chapter7第二部分2005-08-06 15:05:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/xiangyu/3526.html

分享到:

序列七:chapter7 二、课后习题 7.1 这道题应该考虑若最小值不只一个的情况,这时应该把所有最小值的下标都打印出来 #include<iostream> using namespace std; void main() {     //int array[10]={12,91,83,12,29,93,56,12,88,72};     int array[10]={34,91,83,56,29,93,56,12,88,72};     int temp[10]={0};//记录所有最小值的下标值,开始时第一个元素最小     int i,count=1,temp2=array[0];         for(i=1;i<10;i++)         {             if(array[i]==temp2)                 temp[count++]=i;             if(array[i]<temp2)             {                 count=0;                 temp[count++]=i;                 temp2=array[i];             }         }         cout<<"The minimum is "<<temp2<<endl<<"对应的下标有:";         for(i=0;i<count;i++)             cout<<temp[i]<<",";         cout<<"\n"; } 7.2 这道题考查插入算法,大家应该很熟练掌握各种基本算法的程序,这时当遇到题目的时候马上可以直接套用进来 #include<iostream> using namespace std; void main() {     int array[10]={1,15,20,56,80,100,101,101,105,200};//假设原来的数组     int i,insert;     cout<<"请输入要插入的值:";     cin>>insert;     cout<<"插入前的数值的各个元素值是:";     for(i=0;i<10;i++)         cout<<array[i]<<"  ";     if(array[9]>insert)//只有最大的值必现在要插入的值大才需要插入     for(i=8;i>=0;i--)     {         if(array[i]>insert)         array[i+1]=array[i];//把数值往后移         else break;     }     array[i+1]=insert;     cout<<"\n插入后的数值的各个元素值是:";     for(i=0;i<10;i++)         cout<<array[i]<<"  ";     cout<<endl; } 7.3 这道题其实是课本p140的Josephus问题的一个扩展, #include<iostream> using namespace std; void main() {     const int n=17;     int child[n];     int i,j,count=n;     for(i=0;i<n;i++)         child[i]=i+1;//给小孩编号,1,2……     for(i=0,j=0;;j++)     {         if(j==n)j=0;//从第一个小孩开始从新数         if(child[j])             i++;//当数到一个还没有离开圈的小孩是i增加1,         else continue;         if(i%3==0)//此时说明又一次达到m值,这时又有一个小孩要离开圈了         {             //从新初始化             count--;             cout<<child[j]<<"  ";             child[j]=0;         }         if(count==1)break;//只剩下一个小孩是就全部结束了     }     for(i=0;i<n;i++)         if(child[i])break;         cout<<"第"<<child[i]<<"个小孩是胜利者\n"; }

阅读(3268) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册