| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 721 人关注过本帖
标题:找不到错误,小弟新学C语言
只看楼主 加入收藏
staythink
Rank: 2
等 级:论坛游民
帖 子:42
专家分:50
注 册:2010-7-26
收藏
 问题点数:0 回复次数:9 
找不到错误,小弟新学C语言
#include<stdio.h>
#define STUD 30
#define COURSE 3

void total(int score[STUD][COURSE],int sum[],float AVER[],char sign[]);
void print(int score[STUD][COURSE],int n,int sum[],int num[],char sign[],float AVER[]);

main()
{
    int i,n,score[STUD][COURSE],num[STUD],j,sum[STUD];
    float AVER[STUD];
    char sign[STUD];
   
    printf("please input the total number:\n");
    scanf("%d",&n);
    printf("enter NO. and score as:MT EN PH\n");
    for(i=0;i<n;i++)
    {
        scanf("%d",&num[i]);
        for(j=0;j<COURSE;j++)
        {
            scanf("%d",&score[i][j]);
        }
    }
    for(i=0;i<n;i++)
    {
        total(score,sum,AVER,sign);
    }
    print(score,n,sum,num,sign,AVER);
}
   
 void total(int score[STUD][COURSE],int sum[],float AVER[],char sign[])
    {
        int i,j,;
        sum[i]=score[i][0];
        for(j=1;j<COURSE;j++)
        {
             sum[i]=sum[i]+score[i][j];
        }
        AVER[i]=sum[i]/COURSE;
        if(score[i][0]>90&&score[i][1]>90&&score[i][2]>90)
        {
            sign[i]='Y';
        }
        else sign[i]='N';
    }
   
    void print(int score[STUD][COURSE],int n,int sum[],int num[],char sign[],float AVER[])
    {
        int i,j;
        printf("NO   MT   EN   PH   SUM   AVER   >90\n");
        for(i=0;i<n;i++)
        {
            printf("%d",num[i]);
            for(j=0;j<COURSE;j++)
            {
                printf("   %d",score[i][j]);
            }
            printf("   %d   %f   %c\n",sum[i],AVER[i],sign[i]);
        }
    }

以上为我自己写的代码,题目是“某班期中考试科目为数学、英语、物理,有最多不超过30人参加考试。为评定奖学金,要求输出学号、各科分数、总分、平均分,并标出三门功课均在90分以上者(在该栏内输出“Y”,否则输出“N”)
运行结果为
图片附件: 游客没有浏览图片的权限,请 登录注册

搜索更多相关主题的帖子: C语言 
2010-07-26 14:32
do8do8do8
Rank: 10Rank: 10Rank: 10
来 自:沙滩
等 级:贵宾
威 望:17
帖 子:366
专家分:1845
注 册:2010-7-2
收藏
得分:0 
int i,j,;
这里错了 改为 int i,j;

学C语言从底层开始,学编程从问题开始,一日学会C!!!
2010-07-26 14:54
毕业旅行
Rank: 4
等 级:业余侠客
威 望:1
帖 子:130
专家分:280
注 册:2010-7-7
收藏
得分:0 
楼主想通过函数,直接对没有内容的SUM,AVER等进行赋值,但是问题是函数的形参所占的空间在函数调用后就释放了
而且调用本身也有问题,实参没有值。
解决可以通过用指针,或者定义为全局变量也可以
2010-07-26 14:56
经典
Rank: 2
等 级:论坛游民
帖 子:17
专家分:10
注 册:2010-7-14
收藏
得分:0 
print(score,n,sum,num,sign,AVER);
输出错误
2010-07-26 15:24
经典
Rank: 2
等 级:论坛游民
帖 子:17
专家分:10
注 册:2010-7-14
收藏
得分:0 
建议发帖的
先看书了,把基础的看懂了,写程序就简单了
2010-07-26 15:25
staythink
Rank: 2
等 级:论坛游民
帖 子:42
专家分:50
注 册:2010-7-26
收藏
得分:0 
回复 4楼 经典
拜托~这是函数啊,不是printf();

be a progammer,instead of a coder~
2010-07-26 15:27
encounter
Rank: 5Rank: 5
来 自:扬州
等 级:职业侠客
威 望:2
帖 子:150
专家分:359
注 册:2010-7-24
收藏
得分:0 
看不懂你写的
我给你写个

ping   nbtstat   netstat   tracert    nat   at    ftp   telnet..................
2010-07-26 15:44
staythink
Rank: 2
等 级:论坛游民
帖 子:42
专家分:50
注 册:2010-7-26
收藏
得分:0 
回复 7楼 encounter
好的啊~~~不过我已经改好了。只是看看高手的思路…快贴出来吧。

be a progammer,instead of a coder~
2010-07-26 16:18
鸾凤和鸣
Rank: 1
等 级:新手上路
帖 子:9
专家分:3
注 册:2009-10-2
收藏
得分:0 
一年不学c了,写个程序不知道对不对,不要见笑啊
#include<stdio.h>
struct student
{
   char number[10];
   double score[3];
   double sum;
   double aver;
   char sign;
}stu[30];
void main()
{
    int i,n;
    printf("请输入参加考试的人数:");
    scanf("%d",&n);
    printf("请输入依次输入考生学号及各科成绩:\n");
    printf("学号   数学  英语   物理\n");
    for(i=0;i<n;i++)
    {
        scanf("%s%lf%lf%lf",stu[i].number,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);
        stu[i].sum=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];
        stu[i].aver=stu[i].sum/3;
        if(stu[i].score[0]>=90&&stu[i].score[1]>=90&&stu[i].score[2]>=90)stu[i].sign='Y';
        else stu[i].sign='N';
    }
    printf("**********成绩分析表***********\n\n");
    printf("学号\t\t数学\t英语\t物理\t总分\t平均分\t三科均90分以上与否\n");
    for(i=0;i<n;i++)
        printf("%s\t\t%.2lf\t%.2lf\t%.2lf\t%.2lf\t%.2lf\t%s\n",stu[i].number,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].sum,stu[i].aver,stu[i].sign);
}



2010-07-26 18:20
zhangcsx
Rank: 2
等 级:论坛游民
帖 子:12
专家分:15
注 册:2010-7-26
收藏
得分:0 
你可以把这个代码放到vc++里面 看看那里出错 这里出错是因为你定义的int i,j,;这里j后面多一个,
2010-07-26 23:50
快速回复:找不到错误,小弟新学C语言
数据加载中...
 
   



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

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