chenhuhu 发表于 2023-1-12 14:34:44

想求助一下这个c语言函数程序为什么运行结果有问有

源码:
#include<stdio.h>
#include<stdlib.h>
int main()
{
        float aver_student(int student,int n);
        /*float aver_class(int student,int n);
        int max(int student,int n);
        float fang(float ave,int n);*/
        int score={0};
        int i=1,j=1;
        //for(i=1;i<=10;i++)//10名同学
        for(i=1;i<=3;i++)//3名同学
        {
        for(j=97;j<=101;j++)//5门成绩
                {
                printf("请输入%d同学的%c成绩:\n",i,j);
                scanf("%d",&score);
                }
        }
        //for(i=1;i<10;i++)//10名同学
        for(i=1;i<=3;i++)//3名同学
        {
        printf("%d同学的平均分为%6.2f\n",i,aver_student(score,i));
        }
/*        for(i=1;i<4;i++)//ceshi
        {
       
        int j,sum=0;
        float aver=0;
        for(j=0;j<5;j++)//5门课程
        {
                sum=sum+score;
        }
        aver=sum/5;
        printf("%d同学的平均分为%6.2f\n",i,aver);
        }*/
        system("pause");
        return 0;
}
float aver_student(int student,int n)
{
        int i,sum=0;
        float aver=0;
        for(i=0;i<5;i++)//5门课程
        {
                sum=sum+student;
        }
        aver=sum/5;
        return aver;
}
运行结果


想问一下大佬到底是哪里出了问题QAQ

额外减小 发表于 2023-1-12 14:34:45

本帖最后由 额外减小 于 2023-1-12 14:59 编辑

你这边代码有些问题,我帮你改了
删掉注释应该没事吧?
#include<stdio.h>
#include<stdlib.h>

float aver_student(int student,int n);

int main()
{
      
      int score={0};
      int i=1,j=1;
      for(i=1;i<=3;i++)
      {
              for(j=97;j<=101;j++)
            {
                printf("请输入%d同学的%c成绩:\n",i,j);
                scanf("%d",&score);
            }
      }
      for(i=1;i<=3;i++)
      {
              printf("%d同学的平均分为%.2f\n",i,aver_student(score,i));
      }
      system("pause");
      return 0;
}

float aver_student(int student,int n)
{
      int i,sum=0;
      float aver=0;
      for(i=0;i<5;i++)
      {
                sum+=student;
      }
      aver=sum/5;
      return aver;
}



你的源代码错处给你写注释上了
#include<stdio.h>
#include<stdlib.h>
int main()
{
      float aver_student(int student,int n);
      int score={0};
      int i=1,j=1;
      for(i=1;i<=3;i++)
      {
      for(j=97;j<=101;j++)
                {
                printf("请输入%d同学的%c成绩:\n",i,j);
                scanf("%d",&score);/*这边二维数组元素的访问方法错了。应改为“score”*/
                }
      }
      for(i=1;i<=3;i++)
      {
      printf("%d同学的平均分为%6.2f\n",i,aver_student(score,i));
      }
      system("pause");
      return 0;
}
float aver_student(int student,int n)
{
      int i,sum=0;
      float aver=0;
      for(i=0;i<5;i++)
      {
                sum=sum+student;/*这边你怎么只加了一个中括号?应改为 student */
      }
      aver=sum/5;/*这边你的“sum/5 ”属于两个整型相除,会返回一个整型,比如“123/5 ”,你设想的是返回 24.6 ,但实际上他给你返回 24 .*/
      /*应改为“(float)sum/5 ”或者“sum/5.0 ”*/
      return aver;
}

chenhuhu 发表于 2023-1-12 15:24:46

额外减小 发表于 2023-1-12 14:34
你这边代码有些问题,我帮你改了
删掉注释应该没事吧?



谢谢谢谢!太强了!

额外减小 发表于 2023-1-12 15:33:18

chenhuhu 发表于 2023-1-12 15:24
谢谢谢谢!太强了!

没事
一起进步
页: [1]
查看完整版本: 想求助一下这个c语言函数程序为什么运行结果有问有