鱼C论坛

 找回密码
 立即注册
查看: 1381|回复: 3

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

[复制链接]
发表于 2023-1-12 14:34:44 | 显示全部楼层 |阅读模式
10鱼币
源码:
#include<stdio.h>
#include<stdlib.h>
int main()
{
        float aver_student(int student[10][5],int n);
        /*float aver_class(int student,int n);
        int max(int student[10][5],int n);
        float fang(float ave,int n);*/
        int score[10][5]={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[i-1,j-97]);
                }
        }
        //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[i-1][j];
        }
        aver=sum/5;
        printf("%d同学的平均分为%6.2f\n",i,aver);
        }*/
        system("pause");
        return 0;
}
float aver_student(int student[10][5],int n)
{
        int i,sum=0;
        float aver=0;
        for(i=0;i<5;i++)//5门课程
        {
                sum=sum+student[n-1][i];
        }
        aver=sum/5;
        return aver;
}
运行结果
屏幕截图_20230112_142847.png

想问一下大佬到底是哪里出了问题QAQ
最佳答案
2023-1-12 14:34:45
本帖最后由 额外减小 于 2023-1-12 14:59 编辑

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

float aver_student(int student[10][5],int n);

int main()
{
        
        int score[10][5]={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[i-1][j-97]);
            }
        }
        for(i=1;i<=3;i++)
        {
                printf("%d同学的平均分为%.2f\n",i,aver_student(score,i));
        }
        system("pause");
        return 0;
}

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




你的源代码错处给你写注释上了
#include<stdio.h>
#include<stdlib.h>
int main()
{
        float aver_student(int student[10][5],int n);
        int score[10][5]={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[i-1,j-97]);/*这边二维数组元素的访问方法错了。应改为“score[i-1][j-97]  ”*/
                }
        }
        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[10][5],int n)
{
        int i,sum=0;
        float aver=0;
        for(i=0;i<5;i++)
        {
                sum=sum+student[n-1];/*这边你怎么只加了一个中括号?应改为 student[n-1][i] */
        }
        aver=sum/5;/*这边你的“sum/5 ”属于两个整型相除,会返回一个整型,比如“123/5 ”,你设想的是返回 24.6 ,但实际上他给你返回 24 .*/
        /*应改为“(float)sum/5 ”或者“sum/5.0 ”*/
        return aver;
}

最佳答案

查看完整内容

你这边代码有些问题,我帮你改了 删掉注释应该没事吧? 你的源代码错处给你写注释上了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-1-12 14:34:45 | 显示全部楼层    本楼为最佳答案   
本帖最后由 额外减小 于 2023-1-12 14:59 编辑

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

float aver_student(int student[10][5],int n);

int main()
{
        
        int score[10][5]={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[i-1][j-97]);
            }
        }
        for(i=1;i<=3;i++)
        {
                printf("%d同学的平均分为%.2f\n",i,aver_student(score,i));
        }
        system("pause");
        return 0;
}

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




你的源代码错处给你写注释上了
#include<stdio.h>
#include<stdlib.h>
int main()
{
        float aver_student(int student[10][5],int n);
        int score[10][5]={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[i-1,j-97]);/*这边二维数组元素的访问方法错了。应改为“score[i-1][j-97]  ”*/
                }
        }
        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[10][5],int n)
{
        int i,sum=0;
        float aver=0;
        for(i=0;i<5;i++)
        {
                sum=sum+student[n-1];/*这边你怎么只加了一个中括号?应改为 student[n-1][i] */
        }
        aver=sum/5;/*这边你的“sum/5 ”属于两个整型相除,会返回一个整型,比如“123/5 ”,你设想的是返回 24.6 ,但实际上他给你返回 24 .*/
        /*应改为“(float)sum/5 ”或者“sum/5.0 ”*/
        return aver;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-1-12 15:24:46 | 显示全部楼层
额外减小 发表于 2023-1-12 14:34
你这边代码有些问题,我帮你改了
删掉注释应该没事吧?

谢谢谢谢!太强了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-1-12 15:33:18 | 显示全部楼层
chenhuhu 发表于 2023-1-12 15:24
谢谢谢谢!太强了!

没事
一起进步
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-9-21 00:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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