1樓:大野瘦子
錯誤一修改:
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
2樓:精神伴侶海鷗
這個是在它的劇情變成變化裡面說**的。
3樓:
奈何我才疏學淺,只是大一新生,也來奉獻一波。
比較幼稚和複雜,希望可以有用
#include "stdio.h"
#define n 10000
int main()
for(j=0;j printf("%2.d",sum1[j]); return 0;} 4樓:情感世界 #include void main() void shift(int *x,int m)//把m傳來嘛。。。。。。。。。} 5樓:匿名使用者 void shift(int *x); 這個怎麼能在主函式裡面宣告呢?函式體內不允許再宣告定義其他函式。 把m定義成全域性變數,要不然缺資料。 6樓:匿名使用者 shift函式少個形參,m的值沒傳過去。 7樓:4747哦 #include int m,n; //全域性變數 void fun(int *p) main() c語言有n個整數,使前面各數順序向後移m個位置,最後m個數變成最前面m個數 8樓:匿名使用者 當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個數,寫一個函式實現以上功能 9樓:凌亂心扉 **方法 一、#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是檔案包含命令,後面跟著引號""或者尖括號<>,意思是將引號或尖括號內指定的檔案包含到本程式中,成為本程式的一部分,而包含的檔案通常是由系統提供的。 區分引號""或者尖括號<>:尖括號<>編譯程式會先到標準函式庫中找檔案,引號""編譯程式會先從當前目錄中找檔案。 10樓:匿名使用者 你的子函式裡面最後一個迴圈有點錯誤,1,for(i = n;i < n+m ; i ++) 2,你的p的指向和i同時變化,導致你每次 移動兩個單位, 正確的程式如下: #include #include #include void main() for(i=n;i 11樓:匿名使用者 for(i=n-1;i是把後面m個數移到最開始這個地方寫的不對,注意觀察你這裡面的p++,每次執行後p指標向後移了一位,你下次的p+i應該不是你想要的吧? 建議這樣子寫 for (i = 0; i < m ; i++) 12樓:匿名使用者 這是我寫的程式,你的move函式有問題。你對比一下我的吧。 #include #include int *change(int *p,int n,int m)for(number=m;number return(p); }void main() 13樓: 把move註釋掉後一切正常,說明move錯了。 首先,迴圈剛開始時就越界了。如果陣列大小小於n+m,馬上就會停止工作。 下面是個肯定不會出錯的做法,因為每次只用一個int型變數暫存資料: void move(int *p, int n, int m)} 14樓:匿名使用者 #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;} 15樓:4747哦 #include int m,n; //全域性變數 void fun(int *p) main() c語言:有n個整數的陣列,編寫程式使其前面各數順序向後移m個位置,最後m個數變成最前面m個數。 16樓:匿名使用者 #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');}} 17樓:匿名使用者 /*要實現這個功能只需要改一個地方: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');} 18樓:匿名使用者 #include void main(void) *(p++) = t; //把儲存的第一個值給最後p = head; //p指回第一個值m--; //完成一次迴圈,m減一 } for(i=0; i printf("%d ", a[i]);} 19樓:匿名使用者 你新建一個陣列s'[10],使s'[(i+m)%10]=s[i],然後再把s'賦值給s,如果不是要求必須用那個方法的話這個會比較容易理解也容易做吧。 c語言程式設計 有n個整數,使其前面各數順序向後移動m個位置,最後m個數變成前面的m個數 20樓:大野瘦子 錯誤一修改: 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 21樓:匿名使用者 #include #define n 10 void move(int a,int n ,int m); void main() 22樓:匿名使用者 void move(int a,int n,int m) 大野瘦子 錯誤一修改 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 ... include void main double fun int n include double jisuan double x,int n int main double jisuan double x,int n double sum 1 int i for i 0 i 可以輸入任意數的任意次... 彭玉英赫嬋 用了一種比較笨的方法,但是好理解,希望對你有幫助。include void main 這個函式用於求最小公倍數 intmin num int x,int y returni 這個函式用於求最大公約數 intmax num int x,int y returni 靖蓄宇辰錕 include...c語言程式設計有N個整數,使其前面各數順序向後移動M個位置,最
c語言程式設計輸入整數n計算32的n次要求定義函
C語言程式設計 輸入兩個正整數m和n,求其最大公約數和最小公倍數,急!急