| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 580 人关注过本帖
标题:这是用了好久才写出来的程序,结果运行下才发现不正确,老大们求不改变程序 ...
只看楼主 加入收藏
Qiwan
Rank: 2
来 自:河南
等 级:论坛游民
帖 子:48
专家分:28
注 册:2011-5-15
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
这是用了好久才写出来的程序,结果运行下才发现不正确,老大们求不改变程序的基础的修改一下,谢谢了`````
#include<stdio.h>
struct student
{char name[10];
 int num;
 int age;
 char addr[15];
 float score[3];
 float avre;
}struct stud[4];
int main()
{struct stud[i]
 int i;
 printf("请输入各学生信息:姓名、学号、年龄、地址、三门课成绩:\n");
 for(i=0;i<4;i++)
 {scanf("%s %d %d %s %f %f %f",stud[i].name,&stud[i].num,&stud[i].age,&stud[i].addr,&stud[i].score[0],&stud[i].score[1],&stud[i].score[2]);
  stud[i].aver=(stud[i].score[0]+stud[i].score[1]+stud[i].score[2])/3.0;
 }
  save();
  display();
}
void save()
{FILE*fp;
 int i;
 if((fp=fopen("stu-list","wb"))==NULL)
 {printf("cannot open file\n");
  return;
 }
 for(i=0;i<4;i++)
     if(fwrite(&stud[i],sizeof(struct student),1,fp)!=1)
         printf("file write error\n");
     fclose(fp);
}
void display()
{FILE*fp;
 int i;
 if((fp=fopen("d:\\fengyi\\exe\\stu_dat","rb"))==NULL)
 {printf("cannot open file\n");
  return;
 }
 for(i=0;i<4;i++)
 {fread(&stud[i],sizeof(struct student),1,fp);
  printf("%-10s %4d %4d %-15s %5.1f %5.1f %5.1f %5.1f\n",stud[i].name,stud[i].num,stud[i].age,stud[i].addr,stud[i].score[0],
      stud[i].score[1],stud[i].score[2],stud[i].aver);
 }
 fclose(fp);
}
搜索更多相关主题的帖子: 姓名 三门 
2011-05-15 11:29
vipvvv
Rank: 2
等 级:论坛游民
帖 子:9
专家分:18
注 册:2010-9-14
收藏
得分:3 
,&stud[i].addr  这个不要&
2011-05-15 14:36
Qiwan
Rank: 2
来 自:河南
等 级:论坛游民
帖 子:48
专家分:28
注 册:2011-5-15
收藏
得分:0 
嗯~这是个小错误。可是对程序进行编缉时软件上显示在对display函数进行定义时出现的错误呀,我想可能在对save函数定义时出有错误,求高手们给小弟一些明示呀`````
2011-05-15 17:41
shalyf
Rank: 2
等 级:论坛游民
帖 子:21
专家分:18
注 册:2011-5-12
收藏
得分:2 
float avre;??aver??
}struct stud[4];
 int main()
 {struct stud[i]
定义两次干吗,i是多少,i没有初始化
2011-05-15 17:52
Qiwan
Rank: 2
来 自:河南
等 级:论坛游民
帖 子:48
专家分:28
注 册:2011-5-15
收藏
得分:0 
回复 4楼 shalyf
#include<stdio.h>
#define SIZE 10
struct student_type
{char name[10];
 int num;
 int age;
 char addr[15];
 float score[3];
 float aver;
}stud[SIZE];
int main()
{
 int i;
 printf("请输入各学生信息:姓名、学号、年龄、地址、三门课成绩:\n");
 for(i=0;i<SIZE;i++)
 {scanf("%s %d %d %s %f %f %f",stud[i].name,&stud[i].num,&stud[i].age,stud[i].addr,&stud[i].score[0],&stud[i].score[1],&stud[i].score[2]);
  stud[i].aver=(stud[i].score[0]+stud[i].score[1]+stud[i].score[2])/3.0;
 }
  save();
  display();
  return 0;
}
void save()
{FILE*fp;
 int i;
 
 if((fp=fopen("C:\\Documents and Settings\\Administrator\\桌面\\新建文件夹\\score.txt","wb"))==NULL)
 {printf("cannot open file\n");
  return;
 }
 for(i=0;i<SIZE;i++)
     if(fwrite(&stud[i],sizeof(struct student_type),1,fp)!=1)
         printf("file write error\n");
     fclose(fp);
}
void display()
{FILE*fp;
 int i;
 if((fp=fopen("C:\\Documents and Settings\\Administrator\\桌面\\新建文件夹\\score.txt","rb"))==NULL)
 {printf("cannot open file\n");
  return;
 }
 for(i=0;i<SIZE;i++)
 {fread(&stud[i],sizeof(struct student_type),1,fp);
  printf("%-10s %4d %4d %-15s %5.1f %5.1f %5.1f %5.1f\n",stud[i].name,stud[i].num,stud[i].age,stud[i].addr,stud[i].score[0],
      stud[i].score[1],stud[i].score[2],stud[i].aver);
 }
 fclose(fp);
}
这是我再次修改后的,你能帮我用VC++编缉运行一下看看怎么修改么?这是我的综合实验报告上的程序,老师只讲到第7章,而这上面用到的结构体什么的都是第9章以后的,我已经对着课本研究两天了,真的是脑子都大了,你能帮我再修改一下不?
2011-05-15 23:29
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:1 
代码写的太不清楚了

                                         
===========深入<----------------->浅出============
2011-05-16 09:53
wavewind
Rank: 3Rank: 3
来 自:浙江
等 级:论坛游侠
帖 子:34
专家分:101
注 册:2011-5-13
收藏
得分:14 
#include<stdio.h>
struct student
{char name[10];
int num;
int age;
char addr[15];
float score[3];
float avre;
}stud[4];
int main()
{
    void save();  //函数使用先声明
    void display();//函数使用先声明
int i,j;float sum=0;
printf("请输入各学生信息:姓名、学号、年龄、地址、三门课成绩:\n");
for(i=0;i<4;i++)
{scanf("%s %d %d %s %f %f %f",&stud[i].name,&stud[i].num,&stud[i].age,&stud[i].addr,&stud[i].score[0],&stud[i].score[1],&stud[i].score[2]);
for(j=0;j<3;j++)
{
    sum=sum+stud[i].score[j];
}
stud[i].avre=(float)(sum/3.0);
}
  save();
  display();
}
void save()
{FILE*fp;
int i;
if((fp=fopen("stu-list","wb"))==NULL)
{printf("cannot open file\n");
  return;
}
for(i=0;i<4;i++)
     if(fwrite(&stud[i],sizeof(struct student),1,fp)!=1)
         printf("file write error\n");
     fclose(fp);
}
void display()
{FILE*fp;
int i;
if((fp=fopen("d:\\fengyi\\exe\\stu_dat","rb"))==NULL)
{printf("cannot open file\n");
  return;
}
for(i=0;i<4;i++)
{fread(&stud[i],sizeof(struct student),1,fp);
  printf("%-10s %4d %4d %-15s %5.1f %5.1f %5.1f %5.1f\n",stud[i].name,stud[i].num,stud[i].age,stud[i].addr,stud[i].score[0],
      stud[i].score[1],stud[i].score[2],stud[i].avre);
}
fclose(fp);
}
//说明 由于你在程序中定义时使用的avre,所以后面不能用aver,估计是书写错误。
2011-05-16 10:24
Qiwan
Rank: 2
来 自:河南
等 级:论坛游民
帖 子:48
专家分:28
注 册:2011-5-15
收藏
得分:0 
回复 6楼 laoyang103
嗯~我是初学者,都是看着书整的,哈哈~见笑了```
2011-05-16 10:33
Qiwan
Rank: 2
来 自:河南
等 级:论坛游民
帖 子:48
专家分:28
注 册:2011-5-15
收藏
得分:0 
回复 7楼 wavewind
哈哈~完全正确了~~谢谢你呀~~
2011-05-16 11:42
快速回复:这是用了好久才写出来的程序,结果运行下才发现不正确,老大们求不改变 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.078438 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved