上机任务报告模板4
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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)