从人到猿、 2021-06-04 15:00 采纳率: 66.7%
浏览 16
已采纳

麻烦大佬看看我这代码哪里出错了 一个体育成绩系统 要求用函数

#include <stdio.h>

float bmi1(float BMI);

float bmi2(float BMI);

int vc1(int VC);

int vc2(int VC);

int pu(int PU);

int su(int SU);

void TScore(float Totalscore);

 

int main()

{

    float BMI, Totalscore;

    int sex, VC, PU, SU;

    printf("请输入学生性别:(1表示男,2表示女.)");

    scanf("%d\n", &sex);

    

    if(sex==1)

          {

        scanf("%f  %d %d", &BMI, &VC, &PU);

        

        bmi1(BMI );

        vc1(VC);

        pu(PU);

        printf("BMI score=%f, VC score=%d, PU score=%d", score1, score2, score3);

        Totalscore = score1+score2+score3;

        printf("Total score=%f", Totalscore);

        TScore();

    

    }

    else

    {

        scanf("%f  %d  %d", &BMI, &VC, &SU);

        

        bmi2(BMI);

        vc2(VC);

        su(SU);

        printf("BMI score=%f, VC score=%d, SU score=%d", score1, score2, score3);

        Totalscore = score1+score2+score3;

        printf("Total score=%f", Totalscore);

        TScore();

    }

    return 0;

}

 

float bmi1(float BMI)

{

    float score1;

    if(BMI >= 17.9 && BMI <= 23.9)

    score1 = 100*0.25;

    else if(BMI >= 0 && BMI <= 17.8 || BMI >= 24.0 && BMI <= 27.9)

    score1 = 80*0.25;

    else if(BMI >=  28.0)

    score1 = 60*0.25;

    else

    score1 = 30*0.25;

      return score1;

}

 

float bmi2(float BMI)

{

    float score1;

    if(BMI >= 17.2 && BMI <= 23.9)

    score1 = 100*0.25;

    else if(BMI >= 0 && BMI <= 17.1 || BMI >= 24.0 && BMI <= 27.9)

    score1 = 80*0.25;

    else if(BMI >=  28.0)

    score1 = 60*0.25;

    else

    score1 = 30*0.25;

       return score1;

}

 

int vc1(int VC)

{

    int score2;

    if(VC >= 4000)

    score2 = 100*0.35;

    else if(VC >= 4181 && VC <= 4800)

    score2 = 80*0.35;

    else if(VC >= 3101 && VC <= 4180)

    score2 = 60*0.35;

    else if(VC >= 0 && VC <= 3100)

    score2 = 30*0.35;

    else

    printf("自信点,你的肺活量不可能为负值,请重新输入!");

       return score2;

}

 

int vc2(int VC)

{

    int score2;

    if(VC >= 3400)

    score2 = 100*0.35;

    else if(VC >= 3001 && VC <= 3400)

    score2 = 80*0.35;

    else if(VC >= 2051 && VC <= 3000)

    score2 = 60*0.35;

    else if(VC >= 0 && VC <= 2050)

    score2 = 30*0.35;

    else

    printf("自信点,你的肺活量不可能为负值,请重新输入!");

       return score2;

}

 

int pu(int PU)

{

    int score3;

    if(PU >= 19)

    score3 = 100*0.4;

    else if(PU >= 16 && PU < 19)

    score3 = 80*0.4;

    else if(PU >= 10 && PU <= 15)

    score3 = 60*0.4;

    else if(PU >= 0 && PU <= 9)

    score3 = 30*0.4;

    else

    printf("自信点,你的引体向上不可能为负值,请重新输入!");

       return score3;

}

 

int su(int SU)

{

    int score3;

    if(SU >= 19)

    score3 = 100*0.4;

    else if(SU >= 16 && PU < 19)

    score3 = 80*0.4;

    else if(SU >= 10 && PU <= 15)

    score3 = 60*0.4;

    else if(SU >= 0 && PU <= 9)

    score3 = 30*0.4;

    else

    printf("自信点,你的仰卧起坐不可能为负值,请重新输入!");

       return score3;

}

 

void TScore(float Totalscore)

{

    if(Totalscore >= 95 && Totalscore <= 100)

    printf("优秀!");

    else if(Totalscore >= 80 && Totalscore <= 94)

    printf("良好!");

    else(Totalscore >= 60 && Totalscore <= 79)

    printf("及格!");

    else if(Totalscore < 60)

    printf("不及格!");

    else

    printf("请重新输入!"); 

}

  • 写回答

6条回答 默认 最新

  • qfl_sdu 2021-06-04 15:41
    关注

    代码修改如下:

    #include <stdio.h>
    float bmi1(float BMI);
    float bmi2(float BMI);
    int vc1(int VC);
    int vc2(int VC);
    int pu(int PU);
    int su(int SU);
    void TScore(float Totalscore);
    
    int main()
    {
    	float BMI, Totalscore;
    	int sex, VC, PU, SU;
    	float score1;
    	int score2, score3;
    	printf("请输入学生性别:(1表示男,2表示女.)");
    	scanf("%d\n", &sex);
    
    	if(sex==1)
    	{
    		scanf("%f  %d %d", &BMI, &VC, &PU);
    		score1 =bmi1(BMI );
    		score2 =vc1(VC);
    		score3 =pu(PU);
    
    		printf("BMI score=%f, VC score=%d, PU score=%d", score1, score2, score3);
    		Totalscore = score1+score2+score3;
    		printf("Total score=%f", Totalscore);
    		TScore(Totalscore);
    	}
    	else
    	{
    		scanf("%f  %d  %d", &BMI, &VC, &SU);
    		score1 = bmi2(BMI);
    		score2 =vc2(VC);
    		score3 = su(SU);
    		printf("BMI score=%f, VC score=%d, SU score=%d", score1, score2, score3);
    		Totalscore = score1+score2+score3;
    		printf("Total score=%f", Totalscore);
    		TScore(Totalscore);
    
    	}
    
    	return 0;
    
    }
    
    
    
    float bmi1(float BMI)
    {
    	float score1;
    	if(BMI >= 17.9 && BMI <= 23.9)
    		score1 = 100*0.25;
    	else if(BMI >= 0 && BMI <= 17.8 || BMI >= 24.0 && BMI <= 27.9)
    		score1 = 80*0.25;
    	else if(BMI >=  28.0)
    		score1 = 60*0.25;
    	else
    		score1 = 30*0.25;
    	return score1;
    }
    
    
    
    float bmi2(float BMI)
    {
    	float score1;
    	if(BMI >= 17.2 && BMI <= 23.9)
    		score1 = 100*0.25;
    	else if(BMI >= 0 && BMI <= 17.1 || BMI >= 24.0 && BMI <= 27.9)
    		score1 = 80*0.25;
    	else if(BMI >=  28.0)
    		score1 = 60*0.25;
    	else
    		score1 = 30*0.25;
    	return score1;
    }
    
    
    
    int vc1(int VC)
    {
    	int score2;
    	if(VC >= 4000)
    		score2 = 100*0.35;
    	else if(VC >= 4181 && VC <= 4800)
    		score2 = 80*0.35;
    	else if(VC >= 3101 && VC <= 4180)
    		score2 = 60*0.35;
    	else if(VC >= 0 && VC <= 3100)
    		score2 = 30*0.35;
    	else
    		printf("自信点,你的肺活量不可能为负值,请重新输入!");
    
    	return score2;
    
    }
    
    
    
    int vc2(int VC)
    {
    	int score2;
    	if(VC >= 3400)
    		score2 = 100*0.35;
    	else if(VC >= 3001 && VC <= 3400)
    		score2 = 80*0.35;
    	else if(VC >= 2051 && VC <= 3000)
    		score2 = 60*0.35;
    	else if(VC >= 0 && VC <= 2050)
    		score2 = 30*0.35;
    	else
    		printf("自信点,你的肺活量不可能为负值,请重新输入!");
    	return score2;
    }
    
    
    
    int pu(int PU)
    {
    	int score3;
    	if(PU >= 19)
    		score3 = 100*0.4;
    	else if(PU >= 16 && PU < 19)
    		score3 = 80*0.4;
    	else if(PU >= 10 && PU <= 15)
    		score3 = 60*0.4;
    	else if(PU >= 0 && PU <= 9)
    		score3 = 30*0.4;
    	else
    		printf("自信点,你的引体向上不可能为负值,请重新输入!");
    	return score3;
    }
    
    
    
    int su(int SU)
    {
    	int score3;
    	if(SU >= 19)
    		score3 = 100*0.4;
    	else if(SU >= 16 && SU < 19)
    		score3 = 80*0.4;
    	else if(SU >= 10 && SU <= 15)
    		score3 = 60*0.4;
    	else if(SU >= 0 && SU <= 9)
    		score3 = 30*0.4;
    	else
    		printf("自信点,你的仰卧起坐不可能为负值,请重新输入!");
    	return score3;
    }
    
    
    
    void TScore(float Totalscore)
    {
    	if(Totalscore >= 95 && Totalscore <= 100)
    		printf("优秀!");
    	else if(Totalscore >= 80 && Totalscore <= 94)
    		printf("良好!");
    	else if(Totalscore >= 60 && Totalscore <= 79)
    		printf("及格!");
    	else if(Totalscore < 60)
    		printf("不及格!");
    	else
    		printf("请重新输入!"); 
    
    }
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 用hfss做微带贴片阵列天线的时候分析设置有问题
  • ¥50 我撰写的python爬虫爬不了 要爬的网址有反爬机制
  • ¥15 Centos / PETSc / PETGEM
  • ¥15 centos7.9 IPv6端口telnet和端口监控问题
  • ¥120 计算机网络的新校区组网设计
  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 海浪数据 南海地区海况数据,波浪数据
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等