[英]Printing Multidimensional Array C++
如何打印出這個多維向量? 我只是無法弄清楚在下面的代碼的打印部分的內部循環中放置什么作為條件。 我似乎無法弄清楚如何遍歷數組以打印成績。 任何幫助,將不勝感激。
#include <iostream>
using namespace std;
int main()
{
int course, grades;
int** crsgrd;
// get inputs and asign grades
cout << "Enter number of courses: ";
cin >> course;
crsgrd = new int * [course];
for (int c = 0; c < course; c++) {
cout << "Enter number of grades: ";
cin >> grades;
crsgrd[c] = new int[grades];
for(int g = 0; g < grades; g++) {
cout << "Enter your grade: ";
cin >> crsgrd[c][g];
}
}
// print grade report
for(int c = 0; c < course; c++) {
for(int g = 0; g <= ?????????; g++)
cout << crsgrd[c][g] << " ";
cout << endl;
}
// free the array
for(int i = 0; i < course; i++)
delete [] crsgrd[i];
delete [] crsgrd;
return 0;
}
g < crsgrd[c].size() 或者,如果這是某種不允許內置函數的賦值,您可以創建自己的大小函數。
您創建了一個二維數組,而不是標准向量。 數組不存儲它們的長度,所以你要么想辦法存儲長度,要么切換到另一種類型的存儲容器。
下面是一個示例,它將成績數存儲為給定課程的數組的第一個元素:
#include <iostream>
using namespace std;
int main()
{
int course, grades;
int** crsgrd;
// get inputs and asign grades
cout << "Enter number of courses: ";
cin >> course;
crsgrd = new int * [course];
for (int c = 0; c < course; c++) {
cout << "Enter number of grades: ";
cin >> grades;
crsgrd[c] = new int[grades + 1]; // extra cell for # of grades
crsgrd[c][0] = grades;
// start storing grades at cell [c][1] as the first cell has the length
for(int g = 1; g < grades+1; g++) {
cout << "Enter your grade: ";
cin >> crsgrd[c][g];
}
}
// print grade report
for(int c = 0; c < course; c++) {
cout<< "Course #" << c+1 << " grades:" << endl;
// use first element as limit for for loop.
// Be sure to print one more element as we have an extra cell
// at the end.
for(int g = 1; g < crsgrd[c][0] + 1; g++)
cout << crsgrd[c][g] << " ";
cout << endl;
}
// free the array
for(int i = 0; i < course; i++)
delete [] crsgrd[i];
delete [] crsgrd;
return 0;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.