数组或者向量能解决的问题
题目要求从一个.TXT文件中输入一系列的数,每个一行,求每一行的最大公约数,然后按从小到大顺序输出。我想最大公约数要放在一个地方。文件中的数有多少个不确定,要用向量,可是用向量老是说有歧义,用数组又不能定义大小。谁能给个相关的程序啊。
#include<iostream.h>
#include<fstream.h>
#include<cmath>
void main()
{
int num1=0,num2=0,i=0,s=0,j=0,zui=0,count=0,n=0,k=0;
fstream _open_file;
_open_file.open("d:\\abc.txt",ios::nocreate|ios::in);
if (!_open_file)
{ cerr<<"error opening the file"<<endl;
return;
}
while(!_open_file.eof())
{
_open_file>>num1;
_open_file.ignore();
_open_file>>num2;
count++;} //记数多少对数据
const int n=count;
int a[n]; //定义数组
for(k=1;k<count;k++)
{ while(!_open_file.eof())
{
_open_file>>num1;
_open_file.ignore();
_open_file>>num2;
cout<<num1<<" "<<num2<<endl;
if(num1>=num2)
{ s=sqrt(num1);
for(i=1;i<=s;i++)
{if(0==num1%i && 0==num2%i)
zui=i;}
cout<<i<<" ";}
else
{s=sqrt(num2);
for(i=1;i<=s;i++)
{if(0==num2%i&&0==num1%i)
zui=i;}
cout<<i<<" ";}
a[k]=zui;}
cout<<endl;}
}