#include <stdio.h>
#include <process.h>
void output(double *, double *,int,int);
int main()
{
double bar_data[20][3],bar_used[10][2];
/*bar_data comment */
/*column index 0 for size*/
/*column index 1 for weight/ft*/
/*column index 3 for diameter*/
FILE *pbar,*ubar;
int n_data,u_data,i;
pbar=fopen("bardata.dat","r");
if(pbar==NULL){
printf("file open error \n");
exit(1);
}
ubar=fopen("barused.dat","r");
if(ubar==NULL){
printf("File open error \n");
exit(2);
}
fscanf(pbar,"%d",&n_data);
printf("%d",n_data);
for(i=0; i<n_data;++i){
fscanf(pbar,"%lf %lf %lf\n",&bar_data[i][0],&bar_data[i][1],&bar_data[i][2]);
printf("%lf %lf %lf\n",bar_data[i][0],bar_data[i][1],bar_data[i][2]);
}
fclose(pbar);
fscanf(ubar,"%d",&u_data);
for(i=0; i<u_data;++i){
fscanf(ubar,"%lf %lf\n",&bar_used[i][0],&bar_used[i][1]);
printf("%lf %lf\n",bar_used[i][0],bar_used[i][1]);
}
fclose(ubar);
output(&bar_data[0][0],&bar_used[0][0],n_data,u_data);
return 0;
}
void output(double *bar_data, double *bar_used, int n_data, int u_data)
{
int i,j,size,temp_size,index;
double w, totall=0.,totalw=0.,lower,upper;
lower=(int)(*bar_data);
upper=(int)(*(bar_data+(n_data-1)*3));
printf("\tsize\tDiameter\tLength(ft)\tWeight(lb.)\n");
for(i=0; i<u_data;++i){
size=(int)(*(bar_used+i*2));
if((size<lower)||(size>upper)){
printf("Size out of range\n");
exit(3);
}
for(j=0; j<n_data;++j){
temp_size=(int)(*(bar_data+j*3));
if(size!=temp_size)continue;
index=j;
w=(*(bar_used+i*2+1))*(*(bar_data+index*3+1));
totalw+=w;
totall+=(*(bar_used+i*2+1));
printf("\t%d\t %6.3lf\t\t%8.1lf\t%10.1lf\n",size,(*(bar_data+index*3+2)),(*(bar_used+i*2+1)),w);
}
}
printf("\tTotal\t \t \t %12.1lf\t %12.1lf\n",totall,totalw);
}
--
※ 發信站: 批踢踢實業坊(ptt.twbbs.org)
◆ From: pc86.na.ntu.edu