标题:这个程序怎么编?请大家帮帮忙!
只看楼主
vqgxie
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2011-5-1
 问题点数:0 回复次数:14 
这个程序怎么编?请大家帮帮忙!
假设有文件C:\f11.txt,其中保存着一批学生的3门考试成绩,第一个数据为学号,每位学生一行,格式如下:
001        67.5     86.5     33
002        90        98        66
003        60        69        80
……
编写程序实现功能:
a、    把这个文件的全部数据复制到新文件C:\f11a.txt中去,在C:\f11a.txt中每位学生的3门成绩后面增加一项平均成绩,5项数据之间用制表符或者空格符分隔。
b、    接收用户从键盘输入的学号,查询文件C:\f11a.txt,找到和用户输入学号相同的一行学生信息,并且输出该行学生信息。

搜索更多相关主题的帖子: 考试成绩 制表符 用户 
2011-05-02 13:36
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
得分:0 

程序代码:
#include<stdio.h>
#include <math.h>
struct Node
{
    int num;
    float socre[3];
};
void main()
{
    Node a[3] = {0};
    FILE *fp = NULL;
    fp = fopen("message.txt","r");
    for(int i = 0;i<3;i++)
    {
        fscanf(fp,"%d %f %f %f",&a[i].num,&a[i].socre[0],&a[i].socre[1],&a[i].socre[2]);
        printf("%d %f %f %f\n",a[i].num,a[i].socre[0],a[i].socre[1],a[i].socre[2]);
    }
}
写的话就是把 fscanf()改成 fprintf() 参数几本都一样

                                         
===========深入<----------------->浅出============
2011-05-02 17:06
vqgxie
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2011-5-1
得分:0 
楼上的你编的程序好像不对吧 我怎么运行不出结果而且中间有error
2011-05-02 18:08
vqgxie
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2011-5-1
得分:0 
还有人知道怎么做吗?我还是无法运行
2011-05-02 18:45
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
得分:0 
不会吧  编译错误?

贴出来

                                         
===========深入<----------------->浅出============
2011-05-02 18:47
vqgxie
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2011-5-1
得分:0 
[local]1[/local]
这是怎么回事?
2011-05-02 18:58
vqgxie
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2011-5-1
得分:0 
[local]1[/local]
2011-05-02 19:02
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
得分:0 
你说到底是什么错误吧  是编译错误

还是执行的时候蹦了   我好像从来没见过

[local]1[/local] 这个东西

                                         
===========深入<----------------->浅出============
2011-05-02 19:50
khaz
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:130
专家分:188
注 册:2011-4-21
得分:0 
程序代码:
#include<stdio.h>
struct Node
{
    int num;
    float socre[3];
};
int main()
{
    struct Node a[3] = {0};
    FILE *fp = NULL;
    fp = fopen("f11.txt","r");
    FILE *f1 = NULL;
    f1 = fopen("f11a.txt","r+");

    int i;//写在for内c99编译过不了
    for(i = 0;i<3;i++)
    {
        fscanf(fp,"%d %f %f %f",&a[i].num,&a[i].socre[0],&a[i].socre[1],&a[i].socre[2]);
        fprintf(f1,"%d %f %f %f %f\n",a[i].num,a[i].socre[0],a[i].socre[1],a[i].socre[2],(a[i].socre[0]+a[i].socre[1]+a[i].socre[2])/3);
    }
}


改了下2楼的。在linux下通过。
[view@localhost c]$cat f11.txt
001        67.5     86.5     33
002        90        98        66
003        60        69        80
[view@localhost c]$cat f11a.txt
1 67.500000 86.500000 33.000000 62.333333
2 90.000000 98.000000 66.000000 84.666667
3 60.000000 69.000000 80.000000 69.666667

2011-05-02 20:19
khaz
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:130
专家分:188
注 册:2011-4-21
得分:0 
我自己的过不了 求助。
程序代码:
#include<stdio.h>
typedef struct stu {
        char sn[4];
        double score[3];
} *Pstu;
int main()
{
        int i = 10;
        FILE *f, *f1;
        f = fopen("f11.txt", "r");
        f1= fopen("f11a.txt", "w");


        Pstu pp = (Pstu) malloc(sizeof(struct stu) * i);
        int j = 0;
        while (fscanf
               (f, "%s %f %f %f", &pp[j].sn, &pp[j].score[0],
                &pp[j].score[1], &pp[j].score[2]) != EOF) {
                fprintf(f1, "%s %f %f %f %f\n", pp[j].sn, pp[j].score[0],
                        pp[j].score[1], pp[j].score[2],
                        (pp[j].score[0] + pp[j].score[1] +
                         pp[j].score[2]) / 3);
                j++;
        }
        return;
}

[view@localhost c]$cat f11a.txt
001 0.000000 0.000000 0.000000 0.000000
002 0.000000 0.000000 0.000000 0.000000
003 0.000000 0.000000 0.000000 0.000000
2011-05-02 20:22



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




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

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