|登录 |注册

查看: 3548|回复: 20
打印 上一主题 下一主题

帮帮忙,来看下C ,星期一要交了,给idea就好也可以

[复制链接]
pang1989
2010-11-25 11:45 PM
大家好,我做了有一个月,问了好多人,还是Ouput wrong . short form 的
Attendance.txt
1 1 0
1 0 1
1 1 1
0 1 1
0 0 1
0 1 0
0 0 1

#define MAX_WEEKS 7
#define MAX_STUDENTS 10

int studCount,weekCount;
int Attendance[MAX_WEEKS][MAX_STUDENTS];
variable 有。。。。可以assignvalue

void Read_Attendance_Into_Array()
{
        FILE*fp;

        int total_present=0;

        fp=fopen("Attendance.txt","r");

        if (fp==NULL)
        {
                printf("Error\n");
                exit(-1);
        }
        else
        {
                printf("Reading Attendance details for Week #\n");
                printf("0...1...2...3...4...5...6...\n\n");
                printf("Attendance for each week\n");
                printf("------------------------\n");

                while (fscanf(fp,"%d",&student)!=EOF)
                {
                        for (weekCount=0;weekCount<MAX_WEEKS;weekCount++)//MAX_WEEKS 7
                        {
                                printf("Week NO %d :",weekCount+1);

                                for (studCount=0;studCount<MAX_STUDENTS;studCount++)//MAX_STUDENTS 10
                                {
                                        fscanf(fp,"%d",&Attendance[weekCount][studCount]);

                                        if (Attendance[weekCount][studCount]==1)
                                        {
                                                total_present=total_present+1;
                                        }
                                }
                                printf("%d students present\n",total_present);
                                total_present=0;
                        }       
                                printf("\n");
                }
        }
        fclose(fp);
}

我的output
week 1             7
week 2             4
week 3            0
week 4             0
week 5                0
week 6           0
week 7            0

看下。。。
tianjiangm
2010-11-26 12:00 AM
C语言???????????
pang1989
2010-11-26 12:10 AM
回复 2# tianjiangm

很明显是C ,.你可以请教我吗?
tianjiangm
2010-11-26 01:23 AM
回复 3# pang1989


    我还想请教您呢~~~~~
pang1989
2010-11-26 01:46 AM
回复 4# tianjiangm

好像我学了有4个月,level 还不好,真的要学多,可是sem 3 就没学了,现在我sem2...

要常打code,思考,google,问人。。基础打好。。
Super-Tomato
2010-11-26 02:19 AM
大家好,我做了有一个月,问了好多人,还是Ouput wrong . short form 的
Attendance.txt
1 1 0
1 0 1
1 1 1
0 1 1
0 0 1
0 1 0
0 0 1

#define MAX_WEEKS 7
#define MAX_STUDENTS 10

int studCount,weekCount;
int Attendance[MAX_WEEKS][MAX_STUDENTS];
variable 有。。。。可以assignvalue

void Read_Attendance_Into_Array()
{
        FILE*fp;

        int total_present=0;

        fp=fopen("Attendance.txt","r");

        if (fp==NULL)
        {
                printf("Error\n");
                exit(-1);
        }
        else
        {
                printf("Reading Attendance details for Week #\n");
                printf("0...1...2...3...4...5...6...\n\n");
                printf("Attendance for each week\n");
                printf("------------------------\n");

                while (fscanf(fp,"%d",student)!=EOF)
                {
                        for (weekCount=0;weekCount<MAX_WEEKS;weekCount++)//MAX_WEEKS 7
                        {
                                printf("Week NO %d :",weekCount+1);

                                for (studCount=0;studCount<MAX_STUDENTS;studCount++)//MAX_STUDENTS 10
                                {
                                        fscanf(fp,"%d",Attendance[weekCount][studCount]);

                                        if (Attendance[weekCount][studCount]==1)
                                        {
                                                total_present=total_present+1;
                                        }
                                }
                                printf("%d students present\n",total_present);
                                total_present=0;
                        }        
                                printf("\n");
                }
        }
        fclose(fp);
}

我的output
week 1             7
week 2             4
week 3            0
week 4             0
week 5                0
week 6           0
week 7            0

看下。。。
pang1989 发表于 2010-11-25 11:45 PM



修改成以下即可读取最後一個字节
while( !feof( fp ) )
pang1989
2010-11-26 03:29 AM
本帖最后由 pang1989 于 2010-11-26 03:31 AM 编辑

回复 6# Super-Tomato

#define MAX_WEEKS 7
#define MAX_STUDENTS 3

int Attendance[MAX_WEEKS][MAX_STUDENTS]={0};

int student;
int total_present=0;

student=Attendance[0][0];

                while (fscanf(fp,"%d",&student)!=EOF)
                {
                        for (weekCount=0;weekCount<MAX_WEEKS;weekCount++)//MAX_WEEKS 7
                        {
                                printf("Week NO %d :",weekCount+1);

                for (studCount=0;studCount<MAX_STUDENTS;studCount++)//MAX_STUDENTS 10
                                {
                                        fscanf(fp,"%d",&Attendance[weekCount][studCount]);

                   if (Attendance[weekCount][studCount]==1)
                   {
                                                total_present=total_present+1;
                                   }
                                }
                                printf("%d students present\n",total_present);
                total_present=0;
                        }               

output
2
2
2
2
1
1
1
少一个。。。

text file same ...
Super-Tomato
2010-11-26 04:42 AM
回复  Super-Tomato
#define MAX_WEEKS 7
#define MAX_STUDENTS 3

int Attendance[MAX_WEEKS][MAX_STUDENTS]={0};

int student;
int total_present=0;

student=Attendance[0][0];

                while (fscanf(fp,"%d",&student)!=EOF)
                {
                        for (weekCount=0;weekCount<MAX_WEEKS;weekCount++)//MAX_WEEKS 7
                        {
                                printf("Week NO %d :",weekCount+1);

                for (studCount=0;studCount<MAX_STUDENTS;studCount++)//MAX_STUDENTS 10
                                {
                                        fscanf(fp,"%d",&Attendance[weekCount][studCount]);

                   if (Attendance[weekCount][studCount]==1)
                   {
                                                total_present=total_present+1;
                                   }
                                }
                                printf("%d students present\n",total_present);
                total_present=0;
                        }               

output
2
2
2
2
1
1
1
少一个。。。

text file same ...
pang1989 发表于 2010-11-26 03:29 AM



問題點已經在上面告诉你了,但却不曾见你有修改的意思

pang1989
2010-11-26 09:40 AM
回复 8# Super-Tomato

谢谢你,问题解决了!!!!
~Zero
2010-11-26 01:37 PM
番茄,你的 editor 很美。是什么 editor 来的?
您需要登录后才可以回帖 登录 | 注册

JBTALKS.CC |联系我们 |隐私政策 |Share

GMT+8, 2026-4-27 09:56 AM , Processed in 0.099051 second(s), 24 queries .

Powered by Discuz! X2.5 © 2001-2012 Comsenz Inc.

本论坛言论纯属发表者个人意见,与本论坛立场无关
Copyright © 2003-2012 JBTALKS.CC All Rights Reserved

Dedicated Server powered by iCore Technology Sdn. Bhd.

合作联盟网站:
JBTALKS 马来西亚中文论坛 | JBTALKS我的空间 | ICORE TECHNOLOGY SDN. BHD.
回顶部