假设我们有两个整数数组a1[2]
和a2[2]
,我们想要输入,所以我们通常做的是
int a1[2],a2[2];
int i;
cout<<"Enter values in array a1\n";
for(i=0;i<2;i++)
{
cin>>a1[i]; // Taking input in a1 separatly using loop
}
cout<<"Enter values in array a2\n";
for(i=0;i<2;i++)
{
cin>>a2[i]; // Taking input in a2 separatly using loop
}
但是我们可以做这样的事情来最小化在代码中使用cin语句。
for(j=1;j<3;j++) // Loop for taking input in a(j) array , value of j will be 1 first time so that input will be in array a1
{
cout<<"Enter values in array a"<<j<<endl;
for(i=0;i<2;i++)
{
cin>>a(j)[i]; // Can we do something like this so that we can take input using a loop inside loop
}
}
我不知道什么是正确的问题标题,所以任何想要编辑问题标题的人都可以。
答案 0 :(得分:1)
如果要保留2个单独的阵列,可以执行以下操作:
paste label.txt long.txt | column -s $'\t'
如果您拥有1个数组没问题,可以使用二维数组执行以下操作:
for(j=1;j<=2;j++) // Loop for taking input in a(j) array , value of j will be 1 first time so that input will be in array a1
{
cout<<"Enter values in array a"<<j<<endl;
for(i=0;i<2;i++)
{
cin>>(j == 1 ? a1[i] : a2[i]);
}
}
答案 1 :(得分:1)
您的意思是以下内容吗?
#include <iostream>
#include <functional>
int main()
{
const size_t N = 2;
int a1[N];
int a2[N];
size_t j = 1;
for ( auto &r : { std::ref( a1 ), std::ref( a2 ) } )
{
std::cout << "Enter values in array a" << j++ << ": ";
for ( size_t i = 0; i < N; i++ )
{
std::cin >> r.get()[i];
}
}
for ( auto &r : { std::ref( a1 ), std::ref( a2 ) } )
{
for ( size_t i = 0; i < N; i++ ) std::cout << r.get()[i] << ' ';
std::cout << std::endl;
}
}
如果要输入
1 2 3 4
然后输出看起来像
Enter values in array a1: 1 2
Enter values in array a2: 3 4
1 2
3 4
使用此方法,您可以使用两个以上的阵列。例如
const size_t N = 2;
int a1[N];
int a2[N];
int a3[N];
int a4[N];
size_t j = 1;
for ( auto &r : { std::ref( a1 ), std::ref( a2 ), std::ref( a3 ), std::ref( a4 ) } )
//...
答案 2 :(得分:0)
这里a1和a2是数组变量名。我怀疑你是否能做到这一点。 我认为我们能够解决你的问题就像