1樓:匿名使用者
忘掉你的指標吧。
移動後的結果,只是array陣列的重新排列。結果:array[10]=;
最後輸出也只是將重新排列好的陣列列印出來。
假如寫成這樣:
--------------------------int array=;
move(array);//move()乾的是按要求排列陣列的活for(i=0;i<6;i++)
printf("%d",array[i]);
---------------------------是否就不存在困擾呢?
2樓:開心的平凡果
你問的這個問題是計算機專業2023年的考研題,第42題。
時間複雜度和空間複雜度都最小的一種演算法:
演算法思路:
將陣列array[n]的n個元素原地逆置,變為(array_n-1,array_n-2,...,array_m,
arry_m-1,...,array_0),然後再將前n-m個元素原地逆置(得到arry_m,array_m+1,...,array_n-1)和後m個元素原地逆置(得到arry_0,array_1,...
,array_m-1),即得到最終結果。每個資料僅需挪動兩次,所以時間複雜度為o(n);除函式引數佔用空間外,僅用2個整型變數,所以空間複雜度為o(1).
演算法實現(關鍵**):
//逆置
void reverse(int array, int left, int right)}
3樓:手機使用者
e using namespace std;
int main()
c語言有n個整數,使前面各數順序向後移m個位置,最後m個數變成最前面m個數
4樓:匿名使用者
當q=0,a[q]=a[q-1]?你猜
每次a[m]=a[m+1],與q沒關係,q根本沒有用#include
# define n 10
void main()
;int n,i;
void change(int *a,int n);
printf("原陣列為:");
for(i=0;i
c語言對於有n個整數的陣列,使其前面各數順序向後移m個位置,讓最後m個數變成最前面的m個數!
5樓:
#include
#define n 10
int main()
a[k]=temp;
}for(i=0;i printf("%d ",a[i]);} 6樓:匿名使用者 處理這個問題的方法有好多寫法,關鍵看你是一次移動一個位置還是多個位置要是一個位置,那麼只要設一個tmp變數就好要是一次移動多個位置,那麼就要再設定一個陣列一次移動一個位置,那麼迴圈移動m次就好了,for(i=0;i 要是移動多個位置,那麼最好重新賦值一個陣列for(i=0;i b[i+n-m]=a[i]; for(i=m;i b[i]=a[i-m]; c語言:有n個整數的陣列,編寫程式使其前面各數順序向後移m個位置,最後m個數變成最前面m個數。 7樓:匿名使用者 #include void main() printf("輸入要移動的位置數:"); scanf("%d",&m);--->這句也沒錯,最好在其下加入一句:m%=10; for(i=0;i=0;j--) 就該應在這時:s[0]=b }for(i=0;i<10;i++) printf("%d ",s[i]); putchar('\n');}} 8樓:匿名使用者 /*要實現這個功能只需要改一個地方:for(j=8;j>=0;j--)將這句話中的 s[0]=b移到迴圈外面就可以了,因為這個程式中s[0]也參與運算,s[0]的原來的值將賦給後面的 s[1],迴圈體內執行s[0]=b;則過早的將s[9]的值給了s[0],導致結果錯誤,應該先移動好,再將原來s[9]的 值給s[0].除了這個以外,還有幾個可以優化的地方:for(i=0;i<10;i++) 這裡直接寫for(i=0;i<10;i++)就行了,沒必要用一個臨時變數, scanf("%d",&m); 如果使用者輸入大於10的數,那迴圈就會多做幾次,所以可以加一句m=m%10或將外層迴圈條件改為for(i=0;i void main() printf("輸入要移動的位置數:"); scanf("%d",&m); for(i=0;i=0;j--) s[0]=b; }for(i=0;i<10;i++) printf("%d ",s[i]); putchar('\n');} 9樓:匿名使用者 #include void main(void) *(p++) = t; //把儲存的第一個值給最後p = head; //p指回第一個值m--; //完成一次迴圈,m減一 } for(i=0; i printf("%d ", a[i]);} 10樓:匿名使用者 你新建一個陣列s'[10],使s'[(i+m)%10]=s[i],然後再把s'賦值給s,如果不是要求必須用那個方法的話這個會比較容易理解也容易做吧。 dim buffer as variant 表示宣告瞭一個buffer變數,但是這個buffer變數的型別不確定,可以是long integer double object string以及陣列等等,buffer變數的型別由編譯器自行判斷與轉換。dim buffer 100 as variant 表... include void main printf 輸入要移動的位置數 scanf d m 這句也沒錯,最好在其下加入一句 m 10 for i 0 i 0 j 就該應在這時 s 0 b for i 0 i 10 i printf d s i putchar n 要實現這個功能只需要改一個地方 for... 所謂陣列,就是相同資料型別的元素按一定順序排列的集合,就是把有限個型別相同的變數用乙個名字命名,然後用編號區分他們的變數的集合,這個名字稱為陣列名,編號稱為下標。所以在陣列中只能儲存相同型別的類物件。要儲存多個物件,只需要定義乙個類物件陣列,然後賦值進去即可。如類名為a,要儲存最多100個物件,需要...串列埠接收資料怎樣儲存在陣列中呢
c語言 有n個整數的陣列,編寫程式使其前面各數順序向後移m個
c 如何將多個類儲存在陣列中,c 如何將多個類儲存在乙個陣列中