标题:求帮忙,有不解
只看楼主
moliy
Rank: 2
等 级:论坛游民
帖 子:39
专家分:24
注 册:2012-4-25
结帖率:90%
已结贴  问题点数:10 回复次数:6 
求帮忙,有不解
一个班有N名学生,每个学生修了五门课。 1)求每个学生的平均成绩,并输出每个学生的学号,每门课程的成绩及平均值。 2)求某门课程的平均分; 1、分别编写2个函数实现以上2个要求。 2、第1个函数用数组名作参数。第2个函数用指针用参数,并在函数体内用指针对数组操作。

下面这个程序编译正确,但连接错误,我不知道原因,希望可以给我解释一下
#include<stdio.h>
void averscore(int a[10][10],float b[10]);
float avercourse( int(*psco)[10],int n);
void main()
{
long num[10];int sco[10][10];float avsco[10];float aver; int n,N;
int i,j;
scanf("%d",&N);
for(i=0;i<N;i++)
{
scanf("%ld",&num[i]);
for(j=0;j<N;j++)
{
scanf("%d",&sco[i][j]);
}
}
averscore(sco,avsco);
for(i=0;i<N;i++)
{
printf("%d\t",num[i]);
for(j=0;j<N;j++)
{
printf("%d\t",sco[i][j]);
}
printf("%.1f\t",avsco[i]);
}
scanf("%d",&n);
aver=avercourse(sco,n) ;
printf("\n");
printf("%d",n);
printf("%.1f",aver);
getchar();
}
void averscore(int a[10][10],float b[10],int N)
{
int i,j;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
b[i]+=a[i][j];
for(i=0;i<N;i++)
b[i]=b[i]/N;

}
double avercourse( int(*psco)[10],int n,int N)
{
int sum=0;
float pjun;
int i;
for(i=0;i<N;i++)
sum=sum+(*(*(psco+i)+n-1));
pjun=(float)sum/(float)N;
return pjun;
}
搜索更多相关主题的帖子: 平均值 void include 
2012-05-20 17:09
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
得分:5 
要不要我送你一个搞好的

                                         
===========深入<----------------->浅出============
2012-05-20 17:11
moliy
Rank: 2
等 级:论坛游民
帖 子:39
专家分:24
注 册:2012-4-25
得分:0 
好啊
2012-05-20 17:15
lknight
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:37
专家分:187
注 册:2008-9-17
得分:5 
#include<stdio.h>
void averscore(int a[10][10],float b[10]); //你声明的是两个参数;
float avercourse( int(*psco)[10],int n);
void main()
{
long num[10];int sco[10][10];float avsco[10];float aver; int n,N;
int i,j;
scanf("%d",&N);
for(i=0;i<N;i++)
{
scanf("%ld",&num[i]);
for(j=0;j<N;j++)
{
scanf("%d",&sco[i][j]);
}
}
averscore(sco,avsco);
for(i=0;i<N;i++)
{
printf("%d\t",num[i]);
for(j=0;j<N;j++)
{
printf("%d\t",sco[i][j]);
}
printf("%.1f\t",avsco[i]);
}
scanf("%d",&n);
aver=avercourse(sco,n) ;
printf("\n");
printf("%d",n);
printf("%.1f",aver);
getchar();
}
void averscore(int a[10][10],float b[10],int N) //实现是三个参数。。。
{
int i,j;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
b[i]+=a[i][j];
for(i=0;i<N;i++)
b[i]=b[i]/N;

}
double avercourse( int(*psco)[10],int n,int N)//实现是三个参数。。。
{
int sum=0;
float pjun;
int i;
for(i=0;i<N;i++)
sum=sum+(*(*(psco+i)+n-1));
pjun=(float)sum/(float)N;
return pjun;
}
2012-05-20 17:16
moliy
Rank: 2
等 级:论坛游民
帖 子:39
专家分:24
注 册:2012-4-25
得分:0 
不过还是希望谁可以给我解释一下,我是个白菜,好多都不懂
2012-05-20 17:16
lknight
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:37
专家分:187
注 册:2008-9-17
得分:0 
函数实现是指对函数功能的确立,包括指定函数名,函数值类型、形参类型、函数体等,它是一个完整的、独立的函数单位。而声明的作用则是把函数的名字、函数类型以及形参类型、个数和顺序通知编译系统,以便在调用该函数时系统按此进行对照检查(例如函数名是否正确,实参与形参的类型和个数是否一致)。从程序中可以看到对函数的声明与函数实现中的函数首部基本上是相同的。

[ 本帖最后由 lknight 于 2012-5-20 17:25 编辑 ]
2012-05-20 17:21
爱朵啦
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2014-2-25
得分:0 
我的这个题也有好多疑惑
2014-02-25 11:07



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




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

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