我正在嘗試編寫一個應該讓笑臉滑到左側的程序。我開發了下面的代碼,但是當我運行它時,它給出了非常錯誤的打印輸出。使用while語句複製數組
void shiftMap (char sourceBitmap [8][8] , char destinationbitmap [8][8])
{
for (int i = 0 ; i<8 ; i++)
{
for (int j = 0 ; j<8 ; j++)
{
destinationbitmap [i][j] = sourceBitmap[i][j];
}
}
for (int i = 0 ; i<8 ; i++)
{
for (int j = 0; j<8 ; j++)
{
if(destinationbitmap[i][j] == '1')
{
printf(" ");
}
else
{
printf("%c", 'X');
}
}
printf("\n");
}
}
int main()
{
char bitmap1 [8][8] =
{
{'1', 'X', 'X', '1', '1', 'X', 'X','1'},
{'1', 'X', 'X', '1', '1', 'X', 'X','1'},
{'1', '1', '1', '1', '1', '1', '1','1'},
{'X', '1', '1', '1', '1', '1', '1','X'},
{'1', 'X', '1', '1', '1', '1', 'X','1'},
{'1', '1', 'X', 'X', 'X', 'X', '1','1'},
{'1', '1', '1', '1', '1', '1', '1','1'},
{'1', '1', '1', '1', '1', '1', '1','1'},
};
char bitmap2 [8][8] =
{
{'1', 'X', 'X', '1', '1', 'X', 'X','1'},
{'1', 'X', 'X', '1', '1', 'X', 'X','1'},
{'1', '1', '1', '1', '1', '1', '1','1'},
{'X', '1', '1', '1', '1', '1', '1','X'},
{'1', 'X', '1', '1', '1', '1', 'X','1'},
{'1', '1', 'X', 'X', 'X', 'X', '1','1'},
{'1', '1', '1', '1', '1', '1', '1','1'},
{'1', '1', '1', '1', '1', '1', '1','1'},
};
while (1)
{
Sleep(1000);
system("cls");
shiftMap(bitmap1,bitmap2);
}
}
我對編程還很陌生。
你應該真的有兩個函數:'shiftMap()'和'printMap()',因爲它們是兩個單獨的任務(也許是第三個函數copyMap()')。複製移位的數據一次(當您修復代碼以進行移位而不是直接複製時),然後需要將移位的數據('bitmap2')複製回源('bitmap1'),以便下一個副本將開始處理移位的數據。就目前而言,您總是將相同的原始版本「bitmap1」轉移,因爲它永遠不會改變。 –
因爲你有兩張地圖,我很想去替換兩個表情符號:笑臉和悲傷,以及滑過屏幕。代碼只是將一個副本複製到另一個,並永久打印相同的內容。 –