| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 790 人关注过本帖
标题:求解答,这个程序哪里有问题,我找了很久都没发现,谢谢
只看楼主 加入收藏
冯jungle
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2012-12-16
结帖率:87.5%
收藏
已结贴  问题点数:10 回复次数:7 
求解答,这个程序哪里有问题,我找了很久都没发现,谢谢
// 成绩管理.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"



struct Student
{
    int number;
    char name[10];
    float cj[7];
    float min,max,ave,total;
}stu[20];

int i,j,choice;
float deal[7][3];
float sum;
FILE *fp1;
FILE *fp2;
int main(int argc, char* argv[])
{
    void student();
    printf("********************成绩管理********************\n");
    fp1=fopen("a.txt","r");

    printf("输入学生信息:\n");
    printf("学号  姓名 \t 高数  \t工图  \t英语  \tC语言 \t 航概 \t 体育 \t 思修 \t\n");
    for(i=1;i<=20;i++){
        fscanf(fp1,"%d%s",&stu[i].number,stu[i].name);
        printf("%d   %s  \t",stu[i].number,stu[i].name);
        for(j=1;j<=7;j++){
            fscanf(fp1,"%f",&stu[i].cj[j]);
            printf("%5.2f \t",stu[i].cj[j]);
        }
        printf("\n");
    }
    fp2=fopen("b.txt","w");
    fprintf(fp2,"学号  姓名 \t 高数  \t工图  \t英语  \tC语言 \t 航概 \t 体育 \t 思修 \t 最高分\t 最得分\t 平均分\t 总分\t\n");
    for(i=1;i<=20;i++){
        stu[i].max=stu[i].cj[1];
        stu[i].min=stu[i].cj[1];
        stu[i].total=0;
        for(j=1;j<=7;j++){
                stu[i].total=stu[i].total+stu[i].cj[j];
            if(stu[i].cj[j]>stu[i].max)
                stu[i].max=stu[i].cj[j];
            if(stu[i].cj[j]<stu[i].min)
                stu[i].min=stu[i].cj[j];
        }
        stu[i].ave=stu[i].total/7;
    }
    for(i=1;i<=20;i++){
        fprintf(fp2,"%d\t%s\t",stu[i].number,stu[i].name);
        for(j=1;j<=7;j++)
            fprintf(fp2,"%5.2f\t",stu[i].cj[j]);
        fprintf(fp2,"%5.2f\t%5.2f\t%5.2f\t%5.2f\t\n",stu[i].max,stu[i].min,stu[i].ave,stu[i].total);
    }
    fprintf(fp2,"单科最高分、最得分、平均分:\n");
    for(j=1;j<=7;j++){
        deal[j][1]=sut[1].cj[j];//max
        deal[j][2]=stu[1].cj[j];//min
        for(i=1;i<=20;i++){
            sum=sum+stu[i].cj[j];//总分
            if(stu[i].cj[j]>deal[j][1])
                deal[j][1]=stu[i].cj[j];
            if(stu[i].cj[j]<deal[j][2])
                deal[j][2]=stu[i].cj[j];
        }
        deal[j][3]=sum/20;//平均分
    }
    fprintf(fp2,"高数  \t工图  \t英语  \tC语言 \t 航概 \t 体育 \t 思修 \t \n");
    fprintf(fp2,"最高分\v最低分\v平均分\v");
    for(j=1;j<=3;j++)
        for(i=1;i<=7;i++)
        {
            fprintf(fp2,"%5.2f\t",deal[i][j]);
            fprintf(fp2,"\n");
        }






        
/*    printf("1--查询某学生成绩\n2--查询某学科成绩\n3--不及格信息统计\n4--成绩排名\n");
    printf("请选择:\n");
    scanf("%d",&choice);
    switch(choice)
    {
    case 1:student();
        */
        
        

    printf("Hello World!\n");
    return 0;
}
       /*fprintf(fp2,"单科最高分   最得分   平均分:\n");
    for(j=1;j<=7;j++){
        deal[j][1]=stu[1].cj[j];//max
        deal[j][2]=stu[1].cj[j];//min
        for(i=1;i<=20;i++){
            sum=sum+stu[i].cj[j];//总分

            if(stu[i].cj[j]>deal[j][1])
                deal[j][1]=stu[i].cj[j];
            if(stu[i].cj[j]<deal[j][2])
                deal[j][2]=stu[i].cj[j];
        }
        deal[j][3]=sum/20;//平均分
    }
    fprintf(fp2,"高数  \t工图  \t英语  \tC语言 \t 航概 \t 体育 \t 思修 \t \n");
    fprintf(fp2,"最高分\v最低分\v平均分\v");
    for(j=1;j<=3;j++)
        for(i=1;i<=7;i++)
        {
            fprintf(fp2,"%5.2f\t",deal[i][j]);
            fprintf(fp2,"\n");
        }*/红色部分哪里有问题啊?

[ 本帖最后由 冯jungle 于 2012-12-20 23:20 编辑 ]
搜索更多相关主题的帖子: 管理 choice number include total 
2012-12-20 21:47
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:5 
编译错误???
运行错误???
如果是后者 恐怕只能自己排查了

DO IT YOURSELF !
2012-12-20 21:51
冯jungle
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2012-12-16
收藏
得分:0 
回复 2楼 wp231957
编译没有问题,就是运行的时候,老是弹出“出现一个问题,导致…………”的界面,怎么办,找不到问题啊
2012-12-20 21:58
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
vc的话 用f10调试  应该是内存非法访问 导致程序崩溃

DO IT YOURSELF !
2012-12-20 21:59
冯jungle
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2012-12-16
收藏
得分:0 
回复 4楼 wp231957
这个东西不大会用,您能帮帮我吗?
要循环起来,得debug多少次啊?有没有什么方法可以快速找到错误?
2012-12-20 22:05
冯jungle
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2012-12-16
收藏
得分:0 
回复 4楼 wp231957
Deleting intermediate files and output files for project '成绩管理 - Win32 Debug'.
Error: Could not delete file "C:\Users\Administrator\Desktop\我的文件\C语言\c语言作业\成绩管理\Debug\成绩管理.exe" : 拒绝访问。
--------------------Configuration: 成绩管理 - Win32 Debug--------------------
Compiling...
StdAfx.cpp
Compiling...
成绩管理.cpp
Linking...
LINK : fatal error LNK1104: cannot open file "Debug/成绩管理.exe"
执行 link.exe 时出错.

成绩管理.exe - 1 error(s), 0 warning(s)

这是什么意思啊?


2012-12-20 22:29
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
程序被占用吧  看看进程管理器

DO IT YOURSELF !
2012-12-20 22:30
ren1375342
Rank: 2
等 级:论坛游民
帖 子:33
专家分:46
注 册:2012-12-4
收藏
得分:5 
int i,j,choice;
float deal[7][3];这有问题
float sum


   /*fprintf(fp2,"单科最高分   最得分   平均分:\n");
    for(j=1;j<=7;j++){//                               “j最大只能是6,不能等于7”
        deal[j][1]=stu[1].cj[j];//max
        deal[j][2]=stu[1].cj[j];//min;

[ 本帖最后由 ren1375342 于 2012-12-20 23:52 编辑 ]

如果您想找一份编写软件的工作, 则首先您应该能够回答 "是" 的一个问题就是:"请问,您会使用c吗?"
2012-12-20 23:50
快速回复:求解答,这个程序哪里有问题,我找了很久都没发现,谢谢
数据加载中...
 
   



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

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