//解题思路:(按C++语言特性表述)
//1.读取1.txt文件的前两列
//2.按照题中要求把符合要求的数存放在一个数组中
//3.把十进制数组转化为字符串形式并以文件的方式输出。
#include<iostream>
#include<string.h>
#include<stdlib.h>
#include<fstream>
using namespace std;
const float PI=3.14;
char a[200][50];
float b[200][5],res[140][3];//1.txt前两列数字,存放结果集数组 (十进制)
//按题中要求,求出目标的三列数字(十进制)
void result(float b[][5],float res[][3])
{
int i,j,k;
for(i=0;i<135;i++)
{
if(i<27)
{
res[0][0]=3;res[i][1]=2;res[i][2]=2*PI*b[i][0]/b[i][2]*2;
res[i+1][0]=res[i][0]+2;
}
if(i>=27&&i<51){
res[27][0]=6;res[i][1]=4;res[i][2]=2*PI*b[i][0]/b[i][2]*4;
res[i+1][0]=res[i][0]+2;
}
if(i>=51&&i<72){
res[51][0]=9;res[i][1]=6;res[i][2]=2*PI*b[i][0]/b[i][2]*6;
res[i+1][0]=res[i][0]+2;
}
if(i>=72&&i<90){
res[72][0]=12;res[i][1]=8;res[i][2]=2*PI*b[i][0]/b[i][2]*8;
res[i+1][0]=res[i][0]+2;
}
if(i>=90&&i<105){
res[90][0]=15;res[i][1]=10;res[i][2]=2*PI*b[i][0]/b[i][2]*10;
res[i+1][0]=res[i][0]+2;
}
if(i>=105&&i<117){
res[105][0]=18;res[i][1]=12;res[i][2]=2*PI*b[i][0]/b[i][2]*12;
res[i+1][0]=res[i][0]+2;
}
if(i>=117&&i<126){
res[117][0]=21;res[i][1]=14;res[i][2]=2*PI*b[i][0]/b[i][2]*14;
res[i+1][0]=res[i][0]+2;
}
if(i>=126&&i<132){
res[126][0]=24;res[i][1]=16;res[i][2]=2*PI*b[i][0]/b[i][2]*16;
res[i+1][0]=res[i][0]+2;
}
if(i>=132&&i<135){
res[132][0]=27;res[i][1]=18;res[i][2]=2*PI*b[i][0]/b[i][2]*18;
res[i+1][0]=res[i][0]+2;
}
}
}
//读取1.txt文件提取前两列
void f(char a[][50],int row)
{
int i,j;
for(i=0;i<row;i++)//
{
int konge=0,fushu=0;
float number=0,number1=0,number2=0;
for(j=0;j<strlen(a[i]);j++)
{
if(a[i][j]==' ')
{
if(fushu==1)
{
b[i][konge++]=-(number1+number*0.01);
}
else
b[i][konge++]=number1+number*0.01;
number=0;number1=0;
continue;
}
if(a[i][j]=='.')
{
number1=number;
number=0;
continue;
}
if(a[i][j]=='-')
{
fushu=1;
continue;
}
number=number*10+(a[i][j]-'0');
}
}
}
int main()
{
int i=0,j=0,k;
char ch,cres[100];
ifstream filein("1.txt");//读入文件
ofstream fileout("daan.txt");//输出文件
while(filein.get(ch))
{
a[i][j++]=ch;
if(ch=='\n')
{
j=0;
i++;
}
}
k=i;
filein.close();
f(a,k);//读出1.tx文件中的前两列,存入数组b[][]中
result(b,res);//
char cha;
//把结果数组十进制形式转化为字符串形式,方便txt形式文件读出
for(i=0;i<135;i++)
{
for(j=0;j<3;j++)
{
//初始化字符串
memset(cres,0,100);//整数形式转化为字符串形式
if(j==2){
gcvt(res[i][j],5,cres);//浮点数的数字转化为字符串
}
else
itoa(res[i][j],cres,10);
for(k=0;k<strlen(cres);k++)
{
cha=cres[k];
fileout<<cha;
}
fileout<<' ';
}
fileout<<'\n';
}
fileout.close();
return 0;
}