标题:请教各位高手个问题
取消只看楼主
chenzhe_04
Rank: 1
等 级:新手上路
帖 子:5
专家分:8
注 册:2009-9-4
结帖率:100%
已结贴  问题点数:10 回复次数:2 
请教各位高手个问题
#include<stdio.h>
#define N 4

struct student
{
    char name[10];
    int num;
    char addr[10];
    float grade[3];
    float average;
};


main()
{
    FILE *fp;
    int i, j, k, sum=0;   
    struct student stud[N];
    char filename[10];
   
   
    printf("Enter the filename:\n");
    scanf("%s",filename);

    printf("Enter the information:\n");
    for(i=0;i<N;i++)
    {
        scanf("%s%d%s",stud[i].name,&stud[i].num,stud[i].addr);
        for(j=0;j<3;j++)
                scanf("%f",&stud[i].grade[j]);                    
    }
   
   
    for(i=0;i<N;i++)
    {
        for(j=0;j<3;j++)
            sum=sum+stud[i].grade[j];
        stud[i].average=sum/3;
    }
   
   
    if((fp=fopen(filename,"wb"))==NULL)
    {
        printf("cannot open file\n");
        exit(0);
    }
   
    for(k=0;k<N;k++)
        fwrite(&stud[i],sizeof(struct student),1,fp);
   
    fclose(fp);
   
}


程序没发现错  运行时输入第一行然后Enter 出错

劳烦各位大侠了
搜索更多相关主题的帖子: average include Enter 
2009-09-23 23:33
chenzhe_04
Rank: 1
等 级:新手上路
帖 子:5
专家分:8
注 册:2009-9-4
得分:0 
回复 7楼 forever74
非常感谢  我把float类型的数换成int类型 就ok了
scanf函数不算浮点处理函数??看下面的
main()
{
  float a, b, c;
  scanf("%f%f",&a,&b);
  c=a+b;
  printf("%f",c);
}
这个可以运行的啊 输入12 34 得出答案46.000000
这两个程序在scanf处理float类型数应该是一样的,请教
2009-09-24 10:48
chenzhe_04
Rank: 1
等 级:新手上路
帖 子:5
专家分:8
注 册:2009-9-4
得分:0 
回复 9楼 beyond_one
确实应该是K  没有发现呢  不过我说的那个问题 应该不是这个导致的
fwrite是写文件的函数  把输入内存的数据写到文件里   
但现在我输入信息第一行  Enter后 出现问题  
然后显示 scanf:floating point formats not linked
         Abnormal program termination
这时应该是把数据输入内存的过程
把数据类型全换成int后 这个问题就没了  
应该像7#那位大侠所说的吧
2009-09-24 14:34



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-286616-1-1.html




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

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