永发信息网

急急急·····这道编程题怎么做啊?···

答案:1  悬赏:80  手机版
解决时间 2021-05-07 11:12
编写程序,从考生文件夹下的数据文件data565.DAT中读取200个整数至数组中,求出这些数中能被3整除或能被5整除的数的算术平均值,并将结果按格式"%.2f\n"写入考生文件夹下的sj565.c文件中。
最佳答案

//编写程序,从考生文件夹下的数据文件data565.DAT中读取200个整数至数组中,
//求出这些数中能被3整除或能被5整除的数的算术平均值,
//并将结果按格式"%.2f\n"写入考生文件夹下的sj565.c文件中。


#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100
static int i = 0;
static float count = 0;
static float sum = 0;


struct student
{
int math;
int english;
int history;
};


struct student stu[MAXSIZE];


void write()
{
int judge;
FILE *wri;
if( (wri = fopen( "stu.dat","w" )) == NULL)
{
printf( "创建文件失败!!!");
exit(0);
}


loop:
printf( "请输入数学成绩:" );
scanf( "%d",&stu[i].math );
while( stu[i].math < 0 || stu[i].math > 100 )
{
printf( "请输入数学成绩:" );
scanf( "%d", &stu[i].math );
}


printf( "请输入英语成绩:" );
scanf( "%d",&stu[i].english );
while( stu[i].english < 0 || stu[i].english > 100 )
{
printf( "请输入英语成绩:" );
scanf( "%d", &stu[i].english );
}


printf( "请输入历史成绩:" );
scanf( "%d", &stu[i].history );
while( stu[i].history < 0 || stu[i].history > 100 )
{
printf( "请输入历史成绩:" );
scanf( "%d", &stu[i].history );
}
fwrite( &stu[i], sizeof( struct student ), 1, wri );
printf( "是否还要输入是(1)否(0):" );
scanf( "%d", &judge );
if( judge == 1 )
{
i++;
goto loop;
}
fclose( wri );
}


float read()
{
FILE *rea;
if( ( rea = fopen( "stu.dat","r")) == NULL )
{
printf( "打开文件失败!!!" );
exit(0);
}
while( i >= 0 )
{
fread( &stu[i], sizeof( struct student ), 1, rea );
if( stu[i].math % 3 ==0 || stu[i].math % 5 ==0 )
{
sum+= stu[i].math;
count++;
}
if( stu[i].english % 3 ==0 || stu[i].english % 5 ==0 )
{
sum+= stu[i].math;
count++;
}
if( stu[i].history % 3 ==0 || stu[i].history % 5 ==0 )
{
sum+= stu[i].history;
count++;
}
i--;
}
fclose( rea );
printf( "一共有%0.0f个能被3或能被5整除的数据!!\n", count );
if( count != 0)
{
return sum / count;
}
else
{
printf( "被除数为0\n");
return -1;
}
}
int main( void )
{
float receive;
FILE *fp;
write();
receive = read();
if( (fp = fopen( "avg.dat", "w" )) == NULL)
{
printf( "创建文件失败 !!! ");
exit(0);
}
fputc( receive, fp );
fclose( fp );
printf( "平均数=%2.2f\n", receive );
return EXIT_SUCCESS;
}






不知道是不是。。。。

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
假如有人陪你伤心,哪种行为令你感动?
问问升级有什么好处
蓬莱餐厅在哪里啊,我有事要去这个地方
请问温江有哪些美甲店
写好的文章去哪里投稿,写的文章给哪里投稿比
淘宝买的涤纶运动长裤和体育用品商店买的涤纶
英语组题 请高手帮忙 速度啊
我下岗了,单位跟我清算,我该怎样要回属于我
求Decade所有主题曲和插曲的名称
青海香格里拉实业有限公司这个地址在什么地方
谁可以帮我把下面网址里的《59分安琪拉》的全
如何更好的去了解认识一个异性朋友
蒙娜丽莎的微笑为什么神秘
x/2+6.25=3x 小学五年级题目
谁知道一部大风车以前播过的动画片的名字,讲
推荐资讯
Excel表格里的宏和加载宏是用来干什么的
娇颜佳人美妆店地址有知道的么?有点事想过去
qq出现异常怎么样解决
英文翻译:就一句。
联通手机申请QQ会员怎么扣费的?
求闪客快跑背景音乐下载
大一台词课期末总结,一年级大学季台词课绕口
哈尔滨怎么还不下雪
怎样保持彩钻一直亮着?
大合唱排怎样的队形才会有新意和创意呢?
手机QQ阅读下载好了,开不到,怎么办
我网页里flash放的不了了怎么办
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?