小戴是大一新生,刚刚得知了C语言、大学外语两门成绩,他想计算自己目前的平均绩点是多少。

为了简化问题,假设小戴两门课的成绩大于等于68,小于等于77

题目描述
成绩 绩点
75-77 2.7
72-74 2.3
68-71 2.0
输入格式
第一行输入一个整数T,代表样例个数

第二行输入两个整数(68到77),请你根据题意求出小戴的绩点

输出格式
每个样例输出一个浮点数,保留一位小数

输入输出样例
输入 #1复制
1
77 75
输出 #1复制
2.7

你题目的解答代码如下:

#include <stdio.h>

double jd(double score)
{
    if(score>=68 && score<=71)
        return 2.0;
    else if (score>=72 && score<=74)
        return 2.3;
    else if (score>=75 && score<=77)
        return 2.7;
}

int main()
{
    int score1,score2;
    int t,i;
    double ave;
    scanf("%d",&t);
    for (i=0;i<t;i++)
    {
        scanf("%d%d",&score1,&score2);
        ave = (jd(score1)+jd(score2)) / 2;
        printf("%.1f\n",ave); //保留1位小数
    }
    return 0;
}

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

单科成绩的绩点怎么算的?直接根据成绩段定好的吗?代码参考如下:

img

#include <stdio.h>
int main()
{
    int i,n;
    int score1,score2;
    int t;
    double ave=0;
    scanf("%d",&n);
    for (i=0;i<n;i++)
    {
        scanf("%d %d",&score1,&score2);
        //保证score1<score2
        if(score1>score2)
        {
            t = score1;
            score1=score2;
            score2=t;
        }
        if(score1>=68 && score2<=71)
            ave = 2.0;
        else if (score1>=72 && score2<=74)
            ave = 2.3;
        else if (score1>=75 && score2<=77)
            ave = 2.7;
        //如果还有其他的,按照类似的方式添加
        printf("%.1f\n",ave); //保留1位小数
    }
    return 0;
}

用if语句判断,再输出绩点。

#include "stdio.h"
void main()
{
    int score1,score2;
    float result = 0;
    int i,n;
    scanf("%d",&n);
    for(i=0;i<n;i++){
        scanf("%d %d",&score1,&score2);
    
        if(score1>=75 && score1<=77 && score2>=75 && score2<=77)
            result = 2.7;
        else if(score1>=72 && score1<=74 && score2>=72 && score2<=74)
            result = 2.3;
        else if(score1>=68 && score1<=71 && score2>=68 && score2<=71)
            result = 2.0;
        printf("%0.1f\n",result);
    }
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632