c語言 有n個整數的陣列,編寫程式使其前面各數順序向後移m個

時間 2021-09-05 18:21:01

1樓:匿名使用者

#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');}}

2樓:匿名使用者

/*要實現這個功能只需要改一個地方: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');}

3樓:匿名使用者

#include

void main(void)

*(p++) = t; //把儲存的第一個值給最後p = head; //p指回第一個值m--; //完成一次迴圈,m減一

} for(i=0; i

printf("%d ", a[i]);}

4樓:匿名使用者

你新建一個陣列s'[10],使s'[(i+m)%10]=s[i],然後再把s'賦值給s,如果不是要求必須用那個方法的話這個會比較容易理解也容易做吧。

c語言程式設計 有n個整數,使其前面各數順序向後移動m個位置,最後m個數變成前面的m個數

5樓:大野瘦子

錯誤一修改:

printf("%d",a[i]);

錯誤二修改:

void move(int a,int n,int m)int t[n];

int i,j=0;

for(i=n-m;it[j++]=a[i]for(i=0; ia[i+m]=a[i];

for(i=0;ia[i]=t[i];

注意事項

呼叫自定義後移函式move(int *a, int n, int m)來進行迴圈移位,對n(n<20)個整數,使其前面各數順序向後移m個位置,最後m個數變成最前面m個數,如下: n=10, m=3時:輸入:

1 2 3 4 5 6 7 8 9 10,輸出:8 9 10 1 2 3 4 5 6 7

input

輸入多組測試資料,每組先輸入n(n < 20)和m(m < n),再輸入n個整數。

output

輸出迴圈移動m個數後的序列,資料間空格隔開。

sample input

10 4

1 2 3 4 5 6 7 8 9 10

7 21 2 3 4 5 6 7

sample output

7 8 9 10 1 2 3 4 5 6

6 7 1 2 3 4 5

6樓:匿名使用者

#include

#define n 10

void move(int a,int n ,int m);

void main()

7樓:匿名使用者

void move(int a,int n,int m)

8樓:匿名使用者

改正1:

printf("%d",a[i]);

改正2:

void move(int a,int n,int m)

c語言對於有n個整數的陣列,使其前面各數順序向後移m個位置,讓最後m個數變成最前面的m個數!

9樓:

#include

#define n 10

int main()

a[k]=temp;

}for(i=0;i

printf("%d ",a[i]);}

10樓:匿名使用者

處理這個問題的方法有好多寫法,關鍵看你是一次移動一個位置還是多個位置要是一個位置,那麼只要設一個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個數,寫一個函式實現以上功能

11樓:凌亂心扉

**方法

一、#include

void exchange(int*,int,int);

int main(void)

void exchange(int*a,int n,int m)

}**方法

二、假設輸入的n的最大值為20**:

#include

int main()

void move(int array[20],int n,int m)

stdio.h標頭檔案使用

標頭檔案#include中

stdio.h是stand input&output的縮寫,意思是標準輸入輸出標頭檔案。凡是用到標準輸入輸出函式,就要呼叫該標頭檔案。

檢視stdio.h目錄下包含哪些函式:主要有檔案訪問、二進位制輸入/輸出、格式化和非格式化輸入/輸出、檔案定位、錯誤處理、檔案操作等。

具體開啟自己的vs安裝目錄,找到include資料夾,開啟include夾下面的stdio.h檔案即可檢視

(c:\program files(x86)\microsoft visual studio 14.0\vc\vcpackages\intellisense\ios\oss\musl-1.

1.10\include)

常用標準輸入輸出函式:

scanf()從螢幕格式輸入

printf()格式輸出到螢幕

getchar()從螢幕得到一個字元

putchar()字元輸出到螢幕

gets()從螢幕得到一個字串

puts()字串輸出到螢幕

fscanf()從磁碟格式輸入

fprintf()格式輸出到磁碟

fgetc()從磁碟得到一個字元

fputc()字元輸出到磁碟

fgets()從磁碟得到一個字串

fputs()字串輸出到磁碟

#號是預處理語句,表明在編譯之前預先進行處理。

.h是header file的縮寫,表面這是一個標頭檔案。

include是檔案包含命令,後面跟著引號""或者尖括號<>,意思是將引號或尖括號內指定的檔案包含到本程式中,成為本程式的一部分,而包含的檔案通常是由系統提供的。

區分引號""或者尖括號<>:尖括號<>編譯程式會先到標準函式庫中找檔案,引號""編譯程式會先從當前目錄中找檔案。

12樓:匿名使用者

你的子函式裡面最後一個迴圈有點錯誤,1,for(i = n;i < n+m ; i ++)

2,你的p的指向和i同時變化,導致你每次

移動兩個單位,

正確的程式如下:

#include

#include

#include

void main()

for(i=n;i

13樓:匿名使用者

for(i=n-1;i是把後面m個數移到最開始這個地方寫的不對,注意觀察你這裡面的p++,每次執行後p指標向後移了一位,你下次的p+i應該不是你想要的吧?

建議這樣子寫

for (i = 0; i < m ; i++)

14樓:匿名使用者

這是我寫的程式,你的move函式有問題。你對比一下我的吧。

#include

#include

int *change(int *p,int n,int m)for(number=m;number

return(p);

}void main()

15樓:

把move註釋掉後一切正常,說明move錯了。

首先,迴圈剛開始時就越界了。如果陣列大小小於n+m,馬上就會停止工作。

下面是個肯定不會出錯的做法,因為每次只用一個int型變數暫存資料:

void move(int *p, int n, int m)}

16樓:匿名使用者

#include

void sort(char** p,int n,int s)}int main(int argc, const char * argv)

p=pstr;

int m;

printf("請輸入第幾個元素之後移至最前面:");

scanf("%d",&m);

sort(p,j,m);

for(i=0;i

return 0;}

17樓:4747哦

#include

int m,n; //全域性變數

void fun(int *p)

main()

用c語言編寫程式,讀入一正整數n 1n

static void main string args console.write 能被5整除的數有 console.write z 將變數列印出來console.write 個。console.readkey 程式暫停,直到輸入乙個鍵繼續運,以便 如果是 10000000000 注意更換變數型別...

用C語言編寫程式資料結構,用C語言編寫程式 資料結構 20

第5 題 include include define max 256 typedef int list max typedef int elemtype typedef int status define overflow 1 define ok 1 define list init size 8...

用C 語言編寫程式,遞迴函式,用c 編寫程式用遞迴法計算一個整數的所有數字之和

1 在數學上,關於遞迴函式的定義如下 對於某一函式f x 其定義域是集合a,那麼若對於a集合中的某一個值x0,其函式值f x0 由f f x0 決定,那麼就稱f x 為遞迴函式。在程式語言中,把直接或間接地呼叫自身的函式稱為遞迴函式。函式的構建通常需要一個函式或者一個過程來完成。2 遞迴函式 是建立...