本文目錄一覽:
- 1、c語言如何將二維數組行列循環移位
- 2、C語言二維數組移動,效果如下 {1 2 3 4 5}{6 7 8 9 10} 移動後是這樣的:{0 1 2 3 4}{ 5 6 7 8 9}{10}
- 3、C語言二維數組移位問題解析?
- 4、c語言用函數將二維數組往前移一個元素。注意,不要用指針
- 5、c語言對於二維數組,所有行向右移動一位,最右一行移到第一
- 6、C語言如何將二維數組中兩個元素交換位置
c語言如何將二維數組行列循環移位
#includestdio.h
#define N 5
int main(){
int i,j,m,n,a[N][N];
printf(“input m n:”);
scanf(“%d%d”,m,n);
while(m0)m-=N;
while(n0)n-=N;
for(i=0;iN;i++)
for(j=0;jN;j++)
a[i][j]=i*N+j+1;
for(i=0;iN;i++){
for(j=0;jN;j++)
printf(“%-3d”,a[(N-m+i)%N][(N-n+j)%N]);
printf(“\n”);
}
return 0;
}
input m n:1 1
25 21 22 23 24
5 1 2 3 4
10 6 7 8 9
15 11 12 13 14
20 16 17 18 19
C語言二維數組移動,效果如下 {1 2 3 4 5}{6 7 8 9 10} 移動後是這樣的:{0 1 2 3 4}{ 5 6 7 8 9}{10}
#includestdio.h
int main()
{int i,j,t,a[3][5]={1,2,3,4,5,6,7,8,9,10},*p;
printf(“原數組:\n”);
for(i=0;i2;i++)
{for(j=0;j5;j++)
printf(“%4d”,a[i][j]);
printf(“\n”);
}
p=a[0][0]+10;
for(;pa[0][0];p–)
*p=*(p-1);
*p=0;
printf(“移動後的數組:\n”);
for(i=0;i3;i++)
{for(j=0;j5;j++)
{printf(“%4d”,a[i][j]);
if(i==2)break;
}
printf(“\n”);
}
return 0;
}
C語言二維數組移位問題解析?
(n+x)%lie是每4個一個循環,是為了支持輸入的移位大於4的情況,因為等於4的時候相當於不用移,等於5的時候和等於1的時候是一樣的。也就是說周期是lie,4
c語言用函數將二維數組往前移一個元素。注意,不要用指針
你確定題目是”採用指針數組去訪問數組元素”,而不是”採用數組指針去訪問數組元素”
c語言對於二維數組,所有行向右移動一位,最右一行移到第一
int arr[4][4];
for (int iCol = 0; iCol 4; iCol++)
{
int iRowFirst = 0;
//記錄每行第一個數
iRowFirst = arr[iCol][0];
for(int iRow = 0; iRow 3; iRow++)
{
arr[iCol][iRow] = arr[iCol][iRow+1]
}
arr[iCol][iRow] = iRowFirst;
}
C語言如何將二維數組中兩個元素交換位置
可以讓數組進行轉置來實現,參考如下:
public class TestTransposition {
int col;
int row;
/**轉換方法 將一個數組進行轉置
* 原理很簡單
*
* @param input
* @return
*/
public int[][] trans(int[][] input) {
int[][] output = null;
row = input.length;
if (row $amp;amp;$nbsp;0) {
col = input[0].length;
}
output = new int[col][row];
for (int i = 0; i $amp; for (int j = 0; j $amp; output[j][i] = input[i][j];
}
}
return output;
}
public static void main(String[] args){
//若是需要得到轉置數組,應該調用上面的轉置方法
// int[][] in={{1,2,3},{3,4,5}};
// int[][] out=new TestTransposition().trans(in);
// for (int i = 0; i $amp; // for (int j = 0; j $amp; // System.out.print(out[i][j]);
// }
// System.out.println(“”);
// }
//若只是想輸出得到效果 這應該是可以的
int[][] in={{1,2,3},{3,4,5}};
for(int i=0;iin[0].length;i++){
for(int j=0;jin.length;j++){
System.out.print(in[j][i]);
}
System.out.println(“”);
}
}
/*a[2][3]—-a[3][2]
* a[0][0]—-a[0][0]
* a[0][1]—-a[1][0]
* a[0][2]—–a[2][0]
* a[1][0]—-a[0][1]
* a[1][1]—-a[1][1]
* a[1][2]—–a[2][1]
*/
//故此 初步想法應是通過反向循環,即先循環列,在循環行來實現。
}
原創文章,作者:MFOQ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/132595.html