麻烦大家看看我这个C程序有什么问题啊?

来源:百度知道 编辑:UC知道 时间:2024/06/30 14:43:51
int i;
double sum;
for(i=0;i<MAXNUM;i++)
{
aver=aver+xx[i];
sum=sum+xx[i];
sumint=sumint+(int)xx[i];
}
aver=aver/i;
sumdec=sum-sumint;

结果这样求出的sumint aver是对的 sumdec就不对了 为什么啊?
好在这样是66分,还是过了哈。
图片里面的是题目

题干部分:

#include <stdio.h>
#include <conio.h>
#define MAXNUM 200
float xx[MAXNUM];
double aver = 0.0;
long sumint = 0;
double sumdec = 0.0;
int ReadDat(void);
void WriteDat(void);
void CalValue(void)
{

}
void main()
{
int i;
for (i=0; i<MAXNUM; i++)
xx[i] = 0;
if (ReadDat())
{
printf("数据文件IN.DAT不能打开!\007\n");
return;
}
CalValue();
printf("平均值=%.2lf\n", aver);
printf("整数部分之和=%ld\n", sumint);
printf("小数部分之和=%.2lf\n", sumdec);
WriteDat();
}
int ReadDat(

void CalValue( )
{
int i;
double sum=0.0;
for(i=0;i<N;i++) {
sumint+=(int)xx[i]; /*求整数部分之和*/
sumdec+=(xx[i]-(int)xx[i]); /*求小数部分之和*/
sum=sum+xx[i]; }
aver=sum/N;
}
按你的方法,也是可以的,就是double sum=0.0; 要赋值的。

编程部分不可能给你这么简单的

起码要有点,结构编程的算法的