#include <iostream>
#include <iomanip>
using namespace std;
void table(int i[], int j[]);
int m[4][5] = {
{2,5,4,7},
{3,1,2,9},
{4,6,3,0},
};
int main()
{
table({}, {});
}
void table(int i[], int j[]) {
for (int k = 0; k < 5; k ) {
int sum = 0;
for (int l = 0; l < 4; l ) {
sum = m[l][k];
}
cout << "column: " << " " << sum << '\n';
}
}
基本上我希望它像這樣顯示:
Column Sum of Column Entries
1 9
2 12
3 9
4 16
我不知道該怎么做。我寫一個回圈嗎?
uj5u.com熱心網友回復:
提供的代碼沒有意義。
對于初學者,不使用函式表的引數。此外,在此呼叫之后它們被初始化為空指標
table({}, {});
該陣列m也宣告為 4 行和 5 列。這意味著最后一行包含全零,最后一列也包含零。
看來你的意思是一個三行四列的陣列。
該程式可以如下所示
#include <iostream>
$include <iomanip>
const size_t COLS = 4;
void table( const int a[][COLS], size_t rows );
int main()
{
int m[][COLS] =
{
{ 2, 5, 4, 7 },
{ 3, 1, 2, 9 },
{ 4, 6, 3, 0 },
};
table( m, sizeof( m ) / sizeof( *m ) );
}
void table( const int a[][COLS], size_t rows )
{
std::cout << "Column Sum of Column Entries\n";
for (size_t j = 0; j < COLS; j )
{
int sum = 0;
for (size_t i = 0; i < rows; i )
{
sum = a[i][j];
}
std::cout << j 1 << ":" << std::setw( 14 ) << ' ' << sum << '\n';
}
std::cout << '\n';
}
程式輸出為
Column Sum of Column Entries
1: 9
2: 12
3: 9
4: 16
uj5u.com熱心網友回復:
從 中洗掉引數table。傳遞i和j作為指標(int i[]只是int* i引數的一種混淆方式)然后不在函式中使用它們是沒有意義的。相反,您應該將指標傳遞給陣列,而不是使用全域變數。雖然一次只做一件事...
如果您希望標題出現在輸出的其余部分之前,則需要在輸出的其余部分之前列印標題:
void table() {
std::cout << "column\tsum\n";
for (int k = 0; k < 5; k ) {
int sum = 0;
for (int l = 0; l < 4; l ) {
sum = m[l][k];
}
cout << k << "\t" << sum << '\n';
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/453653.html
