2014-03-04 46 views
0

如何根據使用輸入交換2D int數組中的元素?例如我有元件根據用戶輸入使用printf和scanf交換2D int數組元素

int c[2][2]= 
{ 
    {1,2, }, 
    {3,4, } 
}; 

用戶輸入哪個區域的2×2矩陣交換,如:C [0] [0]和C [0] [1]然後顯示新的結果。由於

#include <stdio.h> 
#include <stdlib.h> 

void swap(int c[2][2],int &x1,int &y1,int &x2,int &y2) 
{ 
    int temp = c[x1][y1]; 
    c[x1][y1] = c[x2][y2]; 
    c[x2][y2] = temp; 
} 
int main(void) 
{ 
    int c[2][2]= 
    { 
     {1,2, }, 
     {3,4, } 
     }; 
    int x,y; 
    int x1,x2,x3,x4,x5,y1,y2,y3,y4,y5; 
    for(x=0;x<2;x++) 
    { 
    for(y=0;y<2;y++) 
    { 
    printf("\t%d",c[x][y]); 
    } 
    printf("\n"); 
    } 

    printf("\nEnter 1st value to be swapped:\n"); 
    printf("Row\n"); 
    scanf("%d",&x3); 
    printf("Column\n"); 
    scanf("%d",&y3); 
    printf("\nEnter 2nd value to be swapped:\n"); 
    printf("Row\n"); 
    scanf("%d",&x4); 
    printf("Column\n"); 
    scanf("%d",&y4); 
    if((x3==1&&y3==1)&&(x4==1&&y4==2)) 
    { 
    swap(c[0][0],c[0][1]); 
    } 
    for(x=0;x<2;x++) 
    { 
    for(y=0;y<2;y++) 
    { 
    printf("\t%d",c[x][y]); 
    } 
    printf("\n"); 
    } 

    system("pause"); 
    return ; 
} 
+1

歡迎來到Stack Overflow。這是一個簡單的程序,但起初你應該寫自己的代碼,然後問我們你的問題,我們不會做你的家庭作品entirly –

回答

0

看起來你只是想這樣做:

swap(c[x3-1][y3-1],c[x4-1][y4-1]); 

但你這樣做之前,你需要消毒的變量,以確保他們的陣列的範圍內。