上机任务报告模板4

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

上机任务完成报告

班级:0916 学号姓名:

上机任务1(完成时间:2012年3月23日)

1.c语言代码

#include

#include

#include

#include

#define MAX_NUM 20

void get_sum(char* filename);

void sum(int count_word);

void init_power();

int is_numbe r(char ch);

int is_integer(double );

char str[MAX_NUM][MAX_NUM];

long long result1=0;//int的求和

double result2=0;//float的求和

double f_result[MAX_NUM];

double judge_power(double,char*);

char power[5];//用于存储科学技术法的幂

int main()

{

get_sum("data1.txt");

system("pause");

return 0;

}

void get_sum(char* filename)

{

FILE* fp;

char ch;

int index=0;

int i=0;

int j=0;

int flag_power=0;//是否是指数形式

int flag_dot=0;//是否是小数形式

if((fp=fopen(filename,"r"))==NULL)

{

printf("cannot open the file!");

exit(0);

}

init_power();

while(!feof(fp))

{

ch=fgetc(fp);

if(ch!=' ' && ch!='\n')

{

if((ch=='E' || ch=='e') && i>0) flag_power=1;

if(flag_power)

{

if(ch!='E' && ch!='e')

power[j++]=ch;

}

else if( is_number(ch))

str[index][i++]=ch;

}

else

{

str[index][i]='\0';

f_result[index]=atof(str[index]);

power[j]='\0';

if(flag_power)

{

f_result[index]=judge_power(f_result[index],power);

}

index++;

flag_power=0;

flag_dot=0;

init_power();

j=0;

i=0;

}

}

sum(index);

fclose(fp);

}

int is_number(char ch)

{

if((ch<='9' && ch>='0') || ch=='-' || ch=='.')return 1;

return 0;

}

double judge_power(double origin_num,char* power)

{

int a=atoi(power);

int i;

if(a>0)

for(i=0;i

origin_num*=10;

else

for(i=0;i

origin_num/=10;

return origin_num;

}

void init_power()

{

int i;

for(i=0;i<5;i++)

power[i]='\0';

}

int is_integer(double num)

{

long long quzheng=(long long )num;

if(fabs((double)quzheng-num)<1e-6)return 1;

return 0;

}

void sum(int count_word)

{

int i;

for(i=0;i

{

printf("%f \n",f_result[i]);

if(is_integer(f_result[i]))

result1+=(long long )f_result[i];

else result2+=f_result[i];

}

printf("the sum of integer is:%lld \n",result1);

printf("the sum of double is:%.3f\n",result2); }

结果截图:

2.shell代码

touch file.txt data.txt str.txt

chmod u+wr file.txt data.txt str.txt

gcc -o 2.out 2.c

chmod u+x 2.out

./2.out $1

cat data.txt

cat str.tx

相关文档
最新文档