精華區beta NAOE-87 關於我們 聯絡資訊
#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