我需要做一个将int数存储到Array中的程序。 不是向量,而是数组。另外,我必须使用递归。谢谢您的帮助。
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int counter(ifstream& inData){
int i;
if (inData >> i)
return counter(inData)+1;
else return 0;
}
void upload(ifstream& inData, int myArray[], int ArrSize){
int i;
if (!inData.eof()){
inData >> i;
myArray[ArrSize]=i;
upload(inData, myArray, ArrSize+1);}
else
return;
}
int main(){
ifstream inData;
inData.open("data.txt");
cout << counter(inData);
int vettore[counter(inData)];
upload(inData, vettore, 0);
cout << " " << vettore[0];
//for (int k=0; k<(counter(inData)); k++)
// cout << v[k];
inData.close();
return 0;
}
答案 0 :(得分:0)
*****已解决*****
使用命名空间标准;
int计数器(ifstream&inData){
int i;
if (inData >> i)
return counter(inData)+1;
else return 0;
}
void arrayUp(ifstream&inData,int vec [],int len){
if (len==0) return;
else{
int num;
inData >> num;
vec[len]=num;
arrayUp(inData, vec, len-1);
}
}
void arraySort(int vec [],int len){
int temp;
if (len==0)
return;
for(int i=0; i<len; i++){
if (vec[i+1]<vec[i]){
temp=vec[i];
vec[i]=vec[i+1];
vec[i+1]=temp;}
}
arraySort(vec, len-1);
}
void printArray(int vec [],int len,int i){
if (i==len) return;
else {
cout << vec[i] << " ";
printArray(vec, len, i+1); }
}
int main(){
ifstream inData1, inData2;
inData1.open("data.txt");
inData2.open("data.txt");
int n=counter(inData1);
int myArray[n];
arrayUp(inData2,myArray,n);
inData1.close();
inData2.close();
arraySort(myArray, n);
printArray(myArray, n, 0);
return 0;
}