为什么不会将用户整数54321
分别放入数组integer[1][5]
中,[5][4][3][2][1]
?它将54321
放入一个数组块中。
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int integer[1][5];
int number;
cout << "Please enter an integer: " << endl;
for (int i = 0; i < 1; i++)
{
{
for (int j = 0; j < 5; j++)
cin >> integer[i][j];
}
cout << endl;
}
for (int i = 0; i < 1; i++)
{
{
for (int j = 0; j < 5; j++)
cout << integer[i][j]<< " ";
}
cout << endl;
}
system("pause");
return 0;
}
//why wont this output an integer of 12345 individually into an array of [1][5]?
答案 0 :(得分:1)
请测试这个新代码,我使用char数组取输入12345然后将其转换为整数数组,然后以相反的顺序打印它以达到你所需要的,你可以在第二个for循环中改变12345到54321的位置然后修改第3个循环以打印从j = 0到j <5
的数字#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
char cinteger[5];
int number[5];
cout << "Please enter an integer: " << endl;
for (int j = 0; j < 5; j++)
cin >> cinteger[j];
for (int j = 0; j < 5; j++)
{
number[j]= cinteger[j] - '0';
}
cout << endl;
for (int j = 5; j > 0; j--){
cout << "[";
cout << number[j-1]<< "] ";
}
cout << endl;
return 0;
}
答案 1 :(得分:0)
54321本身被认为是一个整数。 为了在这种情况下在数组中实现[5] [4] [3] [2] [1],用户必须单独键入每个整数。 五 输入 4 输入 3 输入 2 输入 1 输入
答案 2 :(得分:0)
这是因为您要输入的每个号码之间必须有空格(或白色字符)。 解析器看起来就像一个不是五位数的数字......
答案 3 :(得分:0)
您接收输入的方法要求您按&#34;输入&#34;每次提交每个整数后。
使用不同的方法从用户获取数据,或者希望用户在每个整数后按Enter键。
另一种方法是,如果你想继续使用std :: cin,那就是在for循环之前,在提示之后获取数据,然后使用for循环找到你想要的各个整数。
示例:查找1位数。
int data[5], input, size;
cout<<"Enter the data: ";
cin>>input;
for(size = 0; size < 5; ++size){//Assumes array limit = 5.
data[size] = input%10;
input = input/10;
if(input==0)
break;//Escape if fewer characters than 5 entered.
}
请记住,索引0将包含您的最小数字,索引5将包含您的最大数字: &#34; 21354&#34;将存储为{4,5,3,1,2},其中值5为索引1.因此打印将需要反向循环。
这样的事情:
for(int i = size; i >= 0; --i){
cout<<data[i]<<' ';
}
cout<<endl;
答案 4 :(得分:-1)
您正在声明您的二维数组错误地获得您想要的结果。尝试切换阵列,使其看起来像这样。
int integer[5][1];
这也是更好地理解基本数组功能的一个很好的参考。 http://www.cplusplus.com/doc/tutorial/arrays/