gpt4 book ai didi

c++ - 我们可以用这种方式在数组 (a1,a2) 中输入吗?

转载 作者:行者123 更新时间:2023-11-30 03:51:17 24 4
gpt4 key购买 nike

假设我们有两个整数数组 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
}
}

我不知道正确的问题标题应该是什么,所以任何想要编辑问题标题的人都可以这样做。

最佳答案

你的意思是像下面这样的吗?

#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 ) } )
//...

关于c++ - 我们可以用这种方式在数组 (a1,a2) 中输入吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31354670/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com