zl程序教程

您现在的位置是:首页 >  其他

当前栏目

习题 6.4 有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数。写一函数实现以上功能,在主函数中输入n个整数,并输出调整后的n个数。

输入输出 实现 函数 功能 位置 顺序 调整
2023-09-14 09:06:56 时间

C++程序设计(第三版) 谭浩强 习题6.4 个人设计

习题 6.4 有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数。写一函数实现以上功能,在主函数中输入n个整数,并输出调整后的n个数。

代码块:

#include <iostream>
using namespace std;
void move(int *s, int m, int n);
int main()
{
    int a[10], i, num;
    for (i=0, cout<<"Please enter 10 numbers: "; i<10; cin>>a[i++]);
    cout<<"Please enter move number: ";
    cin>>num;
    while (num<0||num>10){
        cout<<"Error! Retry!\nPlease enter 10 numbers: ";
        cin>>num;
    }
    move(a, num, 10);
    for (i=0, cout<<"New line: "; i<10; cout<<a[i++]<<' ');
    cout<<endl;
    system("pause");
    return 0;
}
void move(int *s, int m, int n)
{
    int i, j, t[10];
    for (i=n-m, j=0; i<10; t[j++]=*(s+i++));
    for (i=n-m-1, j=n-1; i>=0; *(s+j--)=*(s+i--));
    for (i=0; i<m; *(s+i)=*(t+i), i++);
}