作业帮 > 综合 > 作业

有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数,写一函数,实现以上功能,在主函数中输入n个整数和输

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/04/29 03:56:56
有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数,写一函数,实现以上功能,在主函数中输入n个整数和输出调整后的n个数.c语言求大神
#include <stdio.h>
void func(int n,int m,int *a)
{
\x09int b[100],i;
\x09for(i = 0;i<m;i++)
\x09\x09    b[i] = a[n-m+i];
\x09for(i=(n-m-1);i>=0;i--)
\x09\x09    a[i+m] = a[i];
for(i = 0;i<m;i++)
     a[i] = b[i];
}

int main()
{
    int a[100],i,n,m;

\x09printf("input n\r\n");
\x09scanf("%d",&n);
\x09for(i=0;i<n;i++)
\x09\x09scanf("%d",&a[i]);   
    printf("input m\r\n");
\x09scanf("%d",&m);
    
\x09for(i=0;i<n;i++)
       printf("%d\t",a[i]);

\x09func(n,m,a);

printf("\r\nafter change\r\n");
for(i=0;i<n;i++)
    printf("%d\t",a[i]);
return 0;
}



这个比较简单直观
不然还可以用单链表 换换指针就行