结构体数组的相关知识可以参考 : 结构体数组
函数fun:
// 计算x所指数组中n个幂数之和
double fun (struct mpow *x,int n)
{
int i,j,t=1;
double s=0;
for(i=0;i<n;i++)//遍历数组
{
for(j=1;j<=x[i].t;j++)//算指数的幂
t=t*x[i].a;
s+=t;
t=1;
}
return s;
}
完整代码:
#include <stdio.h>
#pragma warning (disable:4996)
#define N 5
//结构体数组
struct mpow
{
double a;
int t;
};
//结构体struct mpow两个成员的意义是: a为幂的底,t为幂的指数。
double fun(struct mpow *x,int n)
{
int i,j;
double sum=0.0;
for(i=0;i<n;i++)
{
double power= 1.0;
for(j=0;j<x[i].t;j++)
{
power *= x[i].a;
}
sum +=power;
}
}
void main()
{
void NONO();
struct mpow x[N]={ 12,0,9,2,23,1,7,2 };
double sum;
sum=fun(x,4);
printf("sum=%lf\n",sum);
NONO();
}
void NONO ()
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */
FILE *in, *out ;
struct mpow x[N];
int i,j ;
double sum;
in = fopen("in.dat","r") ;
out = fopen("out.dat","w") ;
for(i = 0 ; i < 10 ; i++) {
for(j=0 ; j < 4; j++) fscanf(in, "%lf,%d,", &x[j].a,&x[j].t) ;
sum=fun(x,4);
fprintf(out, "sum=%lf\n",sum);
}
fclose(in) ;
fclose(out) ;
}