| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1696 人关注过本帖
标题:关于函数调用和数组....
只看楼主 加入收藏
DXC2012
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2011-10-20
结帖率:100%
收藏
 问题点数:0 回复次数:6 
关于函数调用和数组....
8、    5个学生,4门课,要求主函数分别调用各函数实现(下文中的成绩,序号,课程名均由用户在程序运行时输入):
(1)    找出成绩最高的学生序号和课程。
(2)    找出不及格课程的学生序号及其各门课的全部成绩。
(3)    求全部学生各门课程的平均分数,并输出。
这是作业,我的程序是这样写的(着实没弄懂数组和函数调用,请各位不要嫌烦哈)
#include
void input(void);
int main()
{
    int arr[5][5];
    char name[10];
    int i;
    printf("输入项目栏名称:");
    gets(name);
    for(i=0;i<5;i++)
    {
        printf("按照项目栏分别输入%d学生的资料:",i+1);
        scanf("%d%d%d%d%d",&arr[i][0],&arr[i][1],&arr[i][2],&arr[i][3],&arr[i][4]);
    }
    max(arr,name);
    unpass(arr,name);
    return 0;
}

/*找出成绩最高的学生序号和课程*/
void max(int arr[5][5],char name[10])
{
    int j,k,l,num,max;/*k,j为计数器,l代表的学号的位置,num代表科目的位置*/
    max=arr[1][1];/*假设arr[1][1]为最大值*/
    for(j=1;j<5;j++)
        for(k=1;k<5;k++)
            if(arr[j][k]>max)
            {
                arr[j][k]=max;
                l=j;
                num=k;
            }
    printf("最高分是%d,科目为%d",arr[l][num],name[num]);

}
/*找出不及格课程的学生序号及其各门课的全部成绩*/
void unpass(int arr[5][5],char name[10])
{
    int i,j;
    for(i=1;i<5;i++)
        for(j=1;j<5;j++)
            if(arr[i][j]<60)
            {
                printf("不及格课程学号为%d,%d成绩为%d,%d成绩为%d,%d成绩为%d,%d成绩为%d",arr[i][0],name[1],arr[i][1],name[2],arr[i][2],name[3],arr[i][3],name[4],arr[i][4]);
            }

}
/*求全部学生各门课程的平均分数,并输出*/
void ave(int arr[5][5],char name[10])
{
    int i,j,sum=0,ave;
    for(j=1;j<5;j++)
        for(i=1;i<5;i++)
        {
            sum=sum+arr[i][j];
            ave=sum/5;
        }


}
编译器报错
E:\示例\chapter5_8\chapter5_8.c(15) : warning C4013: 'max' undefined; assuming extern returning int
E:\示例\chapter5_8\chapter5_8.c(16) : warning C4013: 'unpass' undefined; assuming extern returning int
E:\示例\chapter5_8\chapter5_8.c(22) : error C2371: 'max' : redefinition; different basic types
E:\示例\chapter5_8\chapter5_8.c(38) : error C2371: 'unpass' : redefinition; different basic types
Error executing cl.exe.

搜索更多相关主题的帖子: 课程 项目 include 用户 
2011-11-29 21:02
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
收藏
得分:0 
错误的原因是max,unpass函数都没有定义。
在#include "stdio.h" 下一行,加上
void max(int arr[5][5],char name[10]);
void unpass(int arr[5][5],char name[10]);
就行了。

~~我的明天我知道~~
2011-11-30 12:16
DXC2012
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2011-10-20
收藏
得分:0 
回复 2楼 pinglideyu
我整个程序都错了,前辈能不能帮我些哈这个程序啊 ????
2011-11-30 13:20
zz199200
Rank: 1
等 级:新手上路
帖 子:18
专家分:2
注 册:2011-11-26
收藏
得分:0 
加上声明就行了
2011-11-30 15:09
恶人打劫
Rank: 2
等 级:论坛游民
帖 子:14
专家分:39
注 册:2011-5-17
收藏
得分:0 
用个结构体把,
struct student
{    int name[20];
     float chengji[4];
}stu[5];
2011-11-30 15:17
DXC2012
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2011-10-20
收藏
得分:0 
回复 5楼 恶人打劫
还没学
2011-11-30 16:07
心灵百合
Rank: 5Rank: 5
等 级:职业侠客
帖 子:215
专家分:367
注 册:2011-3-30
收藏
得分:0 
自定义函数在main()函数后,要在开头先声明;
2011-11-30 16:10
快速回复:关于函数调用和数组....
数据加载中...
 
   



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

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