一個C語言陣列元素回圈左移問題,代碼我寫出來了,但運行結果不對,要求是輸入兩個整數,一個是元素個數,另一個是左移的元素個數,例如輸入5 2
12345,輸出就是34512。不知道代碼哪里出問題了,希望有人可以看一下。
#include<stdio.h>
int main(){
int m,n,i,temp,a[100];
scanf("%d%d",&n,&m);
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
//將前m項進行調換,比如123換成321
for(i=0;i<m;i++){
temp=a[i];
a[i]=a[m-i-1];
a[m-i-1]=temp;
}
//將后面所有項調換,比如45678換為87654
for(i=m;i<n;i++){
temp=a[i];
a[i]=a[n-1-i+m];
a[n-1-i+m]=temp;
}
a[n]='\0';
//此時陣列元素應為32187654,然后倒序輸出即為45678123
for(i=n-1;i>=0;i--){
printf("%d ",a[i]);
}
return 0;
}
uj5u.com熱心網友回復:
//將前m項進行調換,比如123換成321
for(i=0;i<m;i++){ // i < m/2; 不要調換后再調換
temp=a[i];
a[i]=a[m-i-1];
a[m-i-1]=temp;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/105784.html
標籤:新手樂園
下一篇:請教指標陣列的問題
