鱼C论坛

 找回密码
 立即注册
查看: 3093|回复: 5

C语言,程序调试

[复制链接]
发表于 2012-7-16 21:24:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
题目:用一个函数输入2个学生的三门课程成绩,再用一个函数计算出其各学生的平均成绩,再用一个函数计算出平均成绩大于等85分的打印出学号和平均成绩,平均成绩小于60分的学号和平均成绩。

#include"stdio.h"
float input(float b[2][4],int m,int n)
{
int i,j;
printf("请输入学号和三门功课的成绩:\n"); //b[i][0]里面放学号
for(i=0;i<m;i++)
         for(j=0;j<n;j++)
                 scanf("%f",&b[i][j]);

}
float aver(float b[2][4],int m,int n)
{
int i,j,k=0;
float sum=0,aver1=0;

for(i=0;i<m;i++)
{       
         k=i;
         for(j=1;j<n;j++)   
                 sum+=b[i][j];
              aver1=sum/3;
                          printf("%-9.2f",aver1);
                         printf("%f\n",b[i][0]);
                        aver2(b,aver1,i);
                           sum=0;
}
printf("\n");

}
float aver2(float a[2][4],float aver1,int i)
{
  if(aver1>=85)
          printf("%f,%3f,%d\n",a[i][0],aver1,i);
  else if(aver1 < 60)
      printf("%f,%3f,%d\n",a[i][0],aver1,i);

}

main()
{
float a[2][4];
input(a,2,4);
aver(a,2,4);
}
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-7-16 21:26:10 | 显示全部楼层
aver2(b,aver1,i);
这个中为什么i,和 aver1的值不能被aver2函数调用?
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-7-16 21:54:14 | 显示全部楼层
看起来写的好乱.. 我在看下能帮你找出错误来没
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-7-16 21:59:25 | 显示全部楼层
为什么你定义的 第一个函数 用 float 类型   你用了 float 类型 你的  返回值 在哪里 返回什么?
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-7-16 22:11:52 | 显示全部楼层
lz你主函数中貌似没有aver2()么,没仔细看,不过你说的不能调用的问题,是因为变量的存储问题,建议看下书的7.9节的内容。总之一个函数里声明的自动变量别的函数是不可见的,所以你想用这在两个函数中公用变量的话,要把它声明为全局变量
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-7-17 00:31:48 | 显示全部楼层
领会学习,程序简洁至上
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-14 04:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表