題目:有n個整數(shù),使其前面各數(shù)順序向后移m個位置,最后m個數(shù)變成最前面的m個數(shù)。
程序:
#include<stdio.h>
int change(int a[100], int n, int m);
int main()
{
? ? int n, m, i, a[100];
? ? printf("請輸入數(shù)組長度n");
? ? scanf("%d", &n);
? ? printf("請輸入%d個數(shù)", n);
? ? for (i = 0; i<n; i++)
? ? {
? ? ? ? scanf("%d", &a[i]);
? ? }
? ? printf("需要移動的數(shù)的個數(shù)m:");
? ? scanf("%d", &m);
? ? change(a, n, m);
? ? printf("新數(shù)列為:");
? ? for (i = 0; i<n; i++)
? ? ? ? printf("%d ", a[i]);
? ? return 0;
}
int change(int a[100], int n, int m)
{
? ? int b[100], i;
? ? // 把最后m個存放在b
? ? for (i = 0; i < m; i++){
? ? ? ? b[i] = a[n - m + i];
? ? }
? ? // 把前面n-m個往后挪m個
? ? for (i = n-1; i >=m; i--) {
? ? ? ? a[i] = a[i-m];
? ? }
? ? // 把前m個從b放回a
? ? for (i = 0; i < m; i++){
? ? ? ? a[i] = b[i];
? ? }
? ? return 0;
}
輸出樣例:
