0
對不起,如果這是一個愚蠢的問題,但我是一個學習C++的新手程序員。通過指針訪問動態數組
我有一個任務,其中輸入的txt文件提供16行1-5位數字,每行最多5個數字。我們應該編寫一個函數findmax在main中使用,以將每行中的最大數字輸出到另一個txt文件中。
我的代碼沒有當前編譯錯誤我更堅持如何在main中實際使用此函數並將其傳遞到outout文件。對不起,如果這真的很簡單。所有的
#include <iostream>
#include<fstream>
using namespace std;
int *make(int n)
{
#if 0
int *a = new int[n];
#else
int a[n];
#endif
for(int i=0; i < n; ++i) a[i] = i;
return a;
}
int findmax(int x1,int x2,int x3,int x4, int x5)
{
for(int i=0;i<5;i++)
{
int n, temp;
int a[i];
if(a[i]>temp)
temp=a[i];
return temp;
}
}
int main()
{
int n;
int x1, x2, x3, x4, x5, y1, y2, y3, y4, y5;
cout << "Enter number of lines n in the input file." << endl;
cin >> n;
int *a = make(n);
for(int i = 0; i < n; ++i) cout << a[i] << " "; cout << endl;
ifstream infile; infile.open("/home/labs/lab4/lab4_input.txt");
ofstream outfile; outfile.open("/home/labs/lab4/lab4_output.txt");
if(!infile.is_open()) cout << "open infile failed\n";
infile >> x1 >> x2 >> x3 >> x4 >> x5;
findmax(x1, x2, x3, x4, x5);
outfile << y1 << " " << y2 << " " << y3 << " " << y4 << " " << y5 << endl;
infile.close();
outfile.close();
return 0;
}
你需要破解你的C++教科書並閱讀關於數組的章節。這個網站不能教你這樣的基本概念。你的程序純粹意外編譯(因爲你使用錯誤的編譯標誌)。 –
在你的'make'函數中,int a [n];是創建一個不是標準C++語言一部分的可變長度數組(VLA)。在互聯網上搜索「C++ array dynamic memory new」。 –
使用std :: vector! – 2017-10-18 20:13:38