整数对的向量
Vector of Pairs of integers
我被要求获取一个值 N
,然后我将获取 N
对值。这些对将是我的二维数组的大小,这个二维数组的元素范围从 1 到二维数组的大小。
示例输入:
N = 2
两对值是
(2,3)
(3,4)
示例输出:
{(1,2,3),(4,5,6)}
{(1,2,3,4),(5,6,7,8),(9,10,11,12)}
下面的代码是我试过的。我还是个初学者所以请帮助我。
#include<bits/stdc++.h>
using namespace std;
makeArray(int a, int b){
int arr[a][b];
int temp = 1;
cout<<"[";
for(int i=1; i<=a; i++){
cout<<"[";
for(int j=1; j<=b; j++){
cout<<temp<<",";
}
cout<<"]";
}
cout<<"]";
}
int main() {
int n;
cin>>n;
int a,b;
vector<pair<int,int>> ip;
for(int i=0; i<n; i++){
cin>>a;
cin>>b;
ip.push_back(make_pair(a,b));
}
for (int x=0; x<n; x++)
{
makeArray(ip.first, ip.second);
cout<<endl;
}
return 0;
}
我不太明白任务是什么,但我修复了代码中的一些错误,因此它可以运行并满足您提供的示例。
#include<bits/stdc++.h>
using namespace std;
void makeArray(int a, int b){
//int arr[a][b];
int temp = 0;
cout<<"[";
for(int i=1; i<=a; i++){
cout<<"[";
if (1 <= b)
cout << ++temp;
for(int j=2; j<=b; j++){
cout << "," << ++temp;
}
cout<<"]";
}
cout<<"]";
}
int main() {
int n;
cin>>n;
int a,b;
vector<pair<int,int>> ip;
for(int i=0; i<n; i++){
cin>>a;
cin>>b;
ip.push_back(make_pair(a,b));
}
for (int x=0; x<n; x++)
{
makeArray(ip[x].first, ip[x].second);
cout<<endl;
}
return 0;
}
更具体地说,在main()
函数中,第二个for循环:
for (int x=0; x<n; x++)
{
//makeArray(ip.first, ip.second);
makeArray(ip[x].first, ip[x].second);
cout<<endl;
}
您忘记使用括号运算符 []
来访问向量的元素。
在makeArray
函数中:
arr
变量未使用。
忘记了 return 类型 (void
)。
你没有增加 temp
变量,所以你最终打印 1 而不是范围形式 1
到 a * b
您在打印最后一个整数后有一个尾随逗号
修复:
// return type is required
void makeArray(int a, int b){
//int arr[a][b]; variable not used.
//temp is later incremented, so the first
//element printed will be 1.
int temp = 0;
cout<<"[";
for(int i=1; i<=a; i++){
cout<<"[";
//We do not know, if we only need 1
//integer printed, so to not have a trailing
//comma at the end, we print the first integer
//outside the array
if (1 <= b)
cout << ++temp;
//because the first integer is already printed,
//we start from the second
for(int j=2/*1*/; j<=b; j++){
//cout<<temp<<",";
cout << "," << ++temp;
}
cout<<"]";
}
cout<<"]";
}
输入:
2
2 3 3 4
输出:
[[1,2,3][4,5,6]]
[[1,2,3,4][5,6,7,8][9,10,11,12]]
我被要求获取一个值 N
,然后我将获取 N
对值。这些对将是我的二维数组的大小,这个二维数组的元素范围从 1 到二维数组的大小。
示例输入:
N = 2
两对值是
(2,3)
(3,4)
示例输出:
{(1,2,3),(4,5,6)}
{(1,2,3,4),(5,6,7,8),(9,10,11,12)}
下面的代码是我试过的。我还是个初学者所以请帮助我。
#include<bits/stdc++.h>
using namespace std;
makeArray(int a, int b){
int arr[a][b];
int temp = 1;
cout<<"[";
for(int i=1; i<=a; i++){
cout<<"[";
for(int j=1; j<=b; j++){
cout<<temp<<",";
}
cout<<"]";
}
cout<<"]";
}
int main() {
int n;
cin>>n;
int a,b;
vector<pair<int,int>> ip;
for(int i=0; i<n; i++){
cin>>a;
cin>>b;
ip.push_back(make_pair(a,b));
}
for (int x=0; x<n; x++)
{
makeArray(ip.first, ip.second);
cout<<endl;
}
return 0;
}
我不太明白任务是什么,但我修复了代码中的一些错误,因此它可以运行并满足您提供的示例。
#include<bits/stdc++.h>
using namespace std;
void makeArray(int a, int b){
//int arr[a][b];
int temp = 0;
cout<<"[";
for(int i=1; i<=a; i++){
cout<<"[";
if (1 <= b)
cout << ++temp;
for(int j=2; j<=b; j++){
cout << "," << ++temp;
}
cout<<"]";
}
cout<<"]";
}
int main() {
int n;
cin>>n;
int a,b;
vector<pair<int,int>> ip;
for(int i=0; i<n; i++){
cin>>a;
cin>>b;
ip.push_back(make_pair(a,b));
}
for (int x=0; x<n; x++)
{
makeArray(ip[x].first, ip[x].second);
cout<<endl;
}
return 0;
}
更具体地说,在main()
函数中,第二个for循环:
for (int x=0; x<n; x++)
{
//makeArray(ip.first, ip.second);
makeArray(ip[x].first, ip[x].second);
cout<<endl;
}
您忘记使用括号运算符 []
来访问向量的元素。
在makeArray
函数中:
arr
变量未使用。忘记了 return 类型 (
void
)。你没有增加
temp
变量,所以你最终打印 1 而不是范围形式1
到a * b
您在打印最后一个整数后有一个尾随逗号
修复:
// return type is required
void makeArray(int a, int b){
//int arr[a][b]; variable not used.
//temp is later incremented, so the first
//element printed will be 1.
int temp = 0;
cout<<"[";
for(int i=1; i<=a; i++){
cout<<"[";
//We do not know, if we only need 1
//integer printed, so to not have a trailing
//comma at the end, we print the first integer
//outside the array
if (1 <= b)
cout << ++temp;
//because the first integer is already printed,
//we start from the second
for(int j=2/*1*/; j<=b; j++){
//cout<<temp<<",";
cout << "," << ++temp;
}
cout<<"]";
}
cout<<"]";
}
输入:
2
2 3 3 4
输出:
[[1,2,3][4,5,6]]
[[1,2,3,4][5,6,7,8][9,10,11,12]]