我如何在C ++中从右到左编写一个数组
How can i write an array starting from right to left in C++
我不想反转或移动数组。我要的是数组从右往左写。
我做了类似的事情
int arr[5] = {0};
for (int i = 0; i < 5; i++)
{
cout << "enter a number : ";
cin >> arr[i];
for (int j = 0; j < 5; j++)
{
if (arr[j] != 0)
{
cout << arr[j] << " ";
}
else
cout << "X ";
}
cout << endl;
}
在输出屏幕上我看到了这个
enter a number : 5
5 X X X X
enter a number : 4
5 4 X X X
enter a number : 3
5 4 3 X X
enter a number : 2
5 4 3 2 X
enter a number : 1
5 4 3 2 1
Press any key to continue . . .
但是我想看这个
enter a number : 5
X X X X 5
enter a number : 4
X X X 5 4
enter a number : 3
X X 5 4 3
enter a number : 2
X 5 4 3 2
enter a number : 1
5 4 3 2 1
Press any key to continue . . .
我该怎么做?
如果你有帮助我会很高兴
我认为你每次都试图写入最后一个索引,然后将数组中的每个数字向后移动?
要写入最后一个索引,请使用 cin >> arr[4]。
然后在打印出数组后将每个值复制到前一个索引中。确保你的文案只在 J 指数小于 4
int arr[5] = {0};
for (int i = 0; i < 5; i++)
{
cout << "enter a number : ";
//write into the last position
cin >> arr[4];
for (int j = 0; j < 5; j++)
{
if (arr[j] != 0)
{
cout << arr[j] << " ";
}
else
cout << "X ";
//don't go out of bounds. This should move each number to the previous index
if(j<4){
arr[j]=arr[j+1];
}
}
cout << endl;
}
只需更改内部 for 循环,例如按以下方式
int j = 5;
for ( ; j != 0 && arr[j-1] == 0; --j )
{
std::cout << 'X' << ' ';
}
for ( int k = 0; k != j; k++ )
{
std::cout << arr[k] << ' ';
}
我不想反转或移动数组。我要的是数组从右往左写。
我做了类似的事情
int arr[5] = {0};
for (int i = 0; i < 5; i++)
{
cout << "enter a number : ";
cin >> arr[i];
for (int j = 0; j < 5; j++)
{
if (arr[j] != 0)
{
cout << arr[j] << " ";
}
else
cout << "X ";
}
cout << endl;
}
在输出屏幕上我看到了这个
enter a number : 5
5 X X X X
enter a number : 4
5 4 X X X
enter a number : 3
5 4 3 X X
enter a number : 2
5 4 3 2 X
enter a number : 1
5 4 3 2 1
Press any key to continue . . .
但是我想看这个
enter a number : 5
X X X X 5
enter a number : 4
X X X 5 4
enter a number : 3
X X 5 4 3
enter a number : 2
X 5 4 3 2
enter a number : 1
5 4 3 2 1
Press any key to continue . . .
我该怎么做?
如果你有帮助我会很高兴
我认为你每次都试图写入最后一个索引,然后将数组中的每个数字向后移动?
要写入最后一个索引,请使用 cin >> arr[4]。 然后在打印出数组后将每个值复制到前一个索引中。确保你的文案只在 J 指数小于 4
int arr[5] = {0};
for (int i = 0; i < 5; i++)
{
cout << "enter a number : ";
//write into the last position
cin >> arr[4];
for (int j = 0; j < 5; j++)
{
if (arr[j] != 0)
{
cout << arr[j] << " ";
}
else
cout << "X ";
//don't go out of bounds. This should move each number to the previous index
if(j<4){
arr[j]=arr[j+1];
}
}
cout << endl;
}
只需更改内部 for 循环,例如按以下方式
int j = 5;
for ( ; j != 0 && arr[j-1] == 0; --j )
{
std::cout << 'X' << ' ';
}
for ( int k = 0; k != j; k++ )
{
std::cout << arr[k] << ' ';
}