//實現一個任意行、不等列的二維表<br />/*樣本輸入:<br />4<br />3 11 12 13<br />2 21 22<br />4 31 32 33 34<br />1 41<br />輸出:<br />4<br />11 12 13 average:12<br />21 22 average:21.5<br />31 32 33 34 average:32.5<br />41 average:41*/<br />#include <iostream><br />using namespace std;<br />typedef struct {<br />int num;<br />int *rowPointer;<br />}Row;<br />void print(Row *tb, int row){<br />cout << row << endl;<br />for (int i = 0; i < row; i++) {<br />int sum = 0;<br />for (int j = 0; j < tb[i].num ; j++) {<br />cout << tb[i].rowPointer[j] << " ";<br />sum += tb[i].rowPointer[j];<br />}<br />cout << "average:" << (float)sum / tb[i].num << endl;<br />//cout << endl;<br />}<br />}<br />void del (Row *tb, int row) {<br />for (int i = 0; i < row; i ++){<br />delete []tb[i].rowPointer ;<br />}<br />delete []tb;<br />}<br />int main() {<br />int row = 0;<br />cin >> row;<br />Row *table = new Row[row];<br />for (int i = 0; i < row; i ++) {<br />int num = 0;<br />cin >> num;<br />table[i].rowPointer = new int[num];<br />table[i].num = num;<br />for (int j = 0; j < num; j ++) {<br />int k = 0;<br />cin >> k;<br />table[i].rowPointer[j] = k;<br />}<br />}<br />print(table, row);<br />del(table, row);<br />return 0;<br />}<br />
new更多請參考:http://blog.csdn.net/zhuliting/archive/2010/10/08/5926294.aspx