例76:有n個整數,使前面各數順序向后移動m個位置,最后m個數變成最前面m個數,C語言寫一函式實作以上功能,在主函式中輸入n個整數和輸出調整后的n個數,要求用指標,
解題思路:讀者看著道題的時候,首先要明白題意,要用函式和指標來做,讀者如果嫌麻煩的話可以先不用指標,函式也可以先不抽取出來,就在主函式中寫,然后按照題意修改下自己的代碼,
C語言源代碼演示:
#include<stdio.h>//頭檔案
int main()//主函式
{
void move(int [20],int n,int m); //函式宣告
int number[20],n,m,i;//定義整型變數和整型陣列
printf("共有多少個數:");//提示陳述句
scanf("%d",&n);//鍵盤輸入
printf("輸入這%d個數\n",n);//提示陳述句
for(i=0;i<n;i++)
{
scanf("%d",&number[i]); //鍵盤錄入n個數
}
printf("向后移動多少個數:");//提示陳述句
scanf("%d",&m);//鍵盤輸入
move(number,n,m); //move函式呼叫
for(i=0;i<n;i++)//輸出結果
{
printf("%d ",number[i]);
}
printf("\n");//換行
return 0;//主函式回傳值為0
}
void move(int array[20],int n,int m)//move函式功能的實作
{
int *p,array_end;//定義指標變數和整型陣列
array_end=*(array+n-1);
for(p=array+n-1;p>array;p--)
{
*p=*(p-1);
}
*array=array_end;
m--;
if(m>0)
{
move(array,n,m);//遞回呼叫,當回圈次數m減至為0時,停止呼叫
}
}
編譯運行結果如下:
共有多少個數:8
輸入這8個數
12 43 65 67 8 2 1 11
向后移動多少個數:4
8 2 1 11 12 43 65 67
--------------------------------
Process exited after 17.88 seconds with return value 0
請按任意鍵繼續. . .
以上,如果你看了覺得對你有所幫助,就給小林點個贊,分享給身邊的人叭,這樣小林也有更新下去的動力,跪謝各位父老鄉親啦~
C語言對n個字符開辟連續的存盤空間
更多案例可以go公眾號:C語言入門到精通
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/256744.html
標籤:其他
