69,382
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <stdlib.h>
struct flex {
int count;
double average;
double scores[];
};
void makeFlex (struct flex *, int); //为struct申请内存并为元素赋值
void showFlex (struct flex *);//打印信息并释放内存
int main (void)
{
struct flex * pf;
makeFlex (pf, 5);
showFlex (pf);
makeFlex (pf, 10);
showFlex (pf);
return 0;
}
void makeFlex (struct flex * pf, int n)
{
int index;
double total = 0.0;
pf = malloc (sizeof (struct flex) + n * sizeof (double));
pf->count = n;
for (index = 0; index < pf->count; index++)
{
pf->scores[index] = 20.0 - index / (n / 5);
total += pf->scores[index];
}
pf->average = total / pf->count;
}
void showFlex (struct flex * pf)
{
int index;
printf ("Scores: ");
for (index = 0; index < pf->count; index++)
{
printf ("%g ", pf->scores[index]);
}
putchar ('\n');
free (pf);
}
#include <stdio.h>
#include <stdlib.h>
struct flex {
int count;
double average;
double scores[];
};
struct flex * makeFlex (int); //为struct申请内存并为元素赋值
void showFlex (struct flex *);//打印信息并释放内存
int main (void)
{
struct flex * pf = makeFlex (5);
showFlex (pf);
pf = makeFlex (10);
showFlex (pf);
return 0;
}
struct flex * makeFlex (int n)
{
int index;
double total = 0.0;
struct flex * pf;
pf = malloc (sizeof (struct flex) + n * sizeof (double));
pf->count = n;
for (index = 0; index < pf->count; index++)
{
pf->scores[index] = 20.0 - (double) index / (n / 5);
total += pf->scores[index];
}
pf->average = total / pf->count;
return pf;
}
void showFlex (struct flex * pf)
{
int index;
printf ("Scores: ");
for (index = 0; index < pf->count; index++)
{
printf ("%g ", pf->scores[index]);
}
printf ("\nAverage: %g\n", pf->average);
free (pf);
}