我需要的是make程序,其中用户在数组中输入10个整数,然后再输入一个整数,该整数需要用0替换并移至最终数组的末尾。
尝试了我可以在google中找到的所有内容,但仍然无法正常工作。
#include <iostream>
using namespace std;
int main ()
{
int i, array[10], v;
cout << "Please enter 10 integer elements of an array!\n" << endl;
for (int i = 0; i < 10; i++)
{
cout << "array[" << i << "]: ";
cin >> array[i];
}
cout << endl;
cout << "Now, enter the integer, 'V': ";
cin >> v;
cout << endl;
cout << "The final array is:\n" << endl;
for (int i = 0; i < 10; i++)
{
cout << "array[" << i << "]: " << array[i] << endl;
if (array[i] == v)
{
v = 0;
}
}
for (i = 0; i < 1; i++)
cout << "array[" << array[8] << "]: " << v << endl;
这是我完成的工作,差不多完成了,但是不知道如何使之正确,当用户输入与主数组相同的值时,最终只能看到10个数组值,而不是11个。
there is final result, how it should look like
因为我想您可能不会从此描述中了解我需要的任何内容,因为我的英语是垃圾; /
答案 0 :(得分:0)
要将数组中的i:th值替换为零,请写array[i] = 0
,而不要写v = 0
。
要将第i:th个元素复制到最后一个位置,请编写array[9] = array[i]
。
此外,您应该先修改阵列,然后再打印,而不是随手打印。
答案 1 :(得分:0)
这是用于在数组中移动所有相等元素的代码,您可以引用
#include <iostream>
using namespace std;
int main ()
{
const int N = 10;
int array[N];
int v;
cout << "Please enter 10 integer elements of an array!\n" << endl;
for (int i = 0; i < N; i++)
{
cout << "array[" << i << "]: ";
cin >> array[i];
}
cout << endl;
cout << "Now, enter the integer, 'V': ";
cin >> v;
cout << endl;
cout << "The final array is:\n" << endl;
int pos = 0;
// move element which are not equal backward
for (int i = 0; i < N; i++)
{
if (array[i] != v)
{
array[pos] = array[i];
++pos;
}
}
// set value in remaining position to 0
for ( ; pos < N; ++pos){
array[pos] = 0;
}
// print output
for (int i = 0; i < N; i++){
cout << "array[" << i << "]: " << array[i] << endl;
}
}
答案 2 :(得分:0)
#include <iostream>
using namespace std;
int main () {
const size_t MAX_SIZE = 10;
size_t i = 0, array[MAX_SIZE], v;
cout << "Please enter 10 integer elements of an array!\n" << endl;
for (int i = 0; i < MAX_SIZE; i++) {
cout << "array[" << i << "]: ";
cin >> array[i];
}
cout << endl;
cout << "Now, enter the integer, 'V': ";
cin >> v;
cout << endl;
cout << "The final array is:\n" << endl;
while (true)
{
if (i == MAX_SIZE) {
break;
}
if (array[i] == v) {
for (size_t j = i; j < MAX_SIZE - 1; j++) {
array[j] = array[j + 1];
}
array[MAX_SIZE - 1] = 0;
continue;
}
cout << "array[" << i << "]: " << array[i] << endl;
i++;
}
}
_
您也可以使用for循环来实现它。
for (size_t i = 0; i < MAX_SIZE; /*EMPTY*/) {
if (array[i] == v)
{
for (size_t j = i; j < MAX_SIZE - 1; j++) {
array[j] = array[j + 1];
}
array[MAX_SIZE - 1] = 0;
continue;
}
cout << "array[" << i << "]: " << array[i] << endl;
i++;
}
_
Please enter 10 integer elements of an array!
array[0]: 1
array[1]: 1
array[2]: 1
array[3]: 2
array[4]: 1
array[5]: 1
array[6]: 1
array[7]: 1
array[8]: 1
array[9]: 1
Now, enter the integer, 'V': 1
The final array is:
array[0]: 2
array[1]: 0
array[2]: 0
array[3]: 0
array[4]: 0
array[5]: 0
array[6]: 0
array[7]: 0
array[8]: 0
array[9]: 0
_
Please enter 10 integer elements of an array!
array[0]: 1
array[1]: 1
array[2]: 1
array[3]: 2
array[4]: 1
array[5]: 1
array[6]: 1
array[7]: 1
array[8]: 1
array[9]: 1
Now, enter the integer, 'V': 2
The final array is:
array[0]: 1
array[1]: 1
array[2]: 1
array[3]: 1
array[4]: 1
array[5]: 1
array[6]: 1
array[7]: 1
array[8]: 1
array[9]: 0