焊工证怎么考:C++ 急!!!

来源:百度文库 编辑:神马品牌网 时间:2024/04/29 20:17:06
我有一个朋友(女的),12月22号(周四)晚上要进行选修课(就是C++)期末考试了.下面是她老师报出的考试题,望各位高手帮忙弄弄,让我在她面前有个表现的机会,拜托了!
1,不用循环结构,编程实现“画一条横线”的递归算法。
2,试用递归方法:改造“求最大公因数”的秦九韶算法,所设计程序用于不 仅限于int型范围的自然数。
3,任给n(2<n<11)个自然数,试编程实现:
使重新排列后的各数有如下性质:
1)第1,2位置者>=第3,4位置者>=....>=第n-
3,n-2位置者>=第n-1,n位 置者
2)偶数位置者>=奇数位置者

补充一点,答案不要太复杂哈,她是个菜鸟,只学过这一个学期(我怀疑她是去混学分的)。

拜托了,我下半辈子的幸福就交给你们了。
问题补充:秦九韶算法:是给定两个数A和B,用较大的数减去较小的数|A—B|来替换其中较大者,依次循环就得到公因数。如6和8,8-6=2,帮用2去替8,再用6和2再来一次替换。。。依次替换最后得到相等的两个数,就是公因数了。
《本帖已经发过一次了,回了帖的两位朋友,谢谢你们》

1
void line(int n) //n为所画直线长度
{
if (n)
{
return;
}
else
{
cout<<'-';
line(n-1);
}
}
2.原来秦九韶算法是这样呀,写一个
int qjz(int m,int n)
{
int tmp,max,min;
max=m>n?m:n; //取较大值
min=m<n?m:n; //取较小值
while(max!=min)
{
tmp=max-min;
max=tmp>min?tmp:min;
min=tmp<min?tmp:min;
}
return max;
}
//感觉是用减法取代了取余操作,和辗转相除没什么区别

3.输入部分你自己弄一个,这里给出排序的函数
先对数组整个降序排序,再逐两位升序排序
void swap(int &m,int &n)
//交换两数的值的函数,在后面的mysort要用到
{
int tmp;
tmp=m;
n=tmp;
m=n;
}

void mysort(int *a,int len) //真正的排序函数
//a为数组名,len为存放的元素个数
{
int i,j;
for (i=0;i<len;i++)
for(j=len;j>i;j--)
{
if (a[j]>a[j-1])
{
swap(a[j],a[j-1]); //交换两数位置
}
} //完成降序排序
for (i=0;i<len;i+=2)
if ((i+1<len)&&(a[i]<a[i+1]))
swap(a[i],a[i+1]);
}
既然是初学嘛,用个简单的排序方法就好了。

你找他应该可以帮你QQ:103578308