首页 > 试题广场 >

成绩

[编程题]成绩
  • 热度指数:14776 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\hspace{15pt}牛牛最近学习了 C++ 入门课程,这门课程的总成绩按照如下权重计算:
\hspace{23pt}\bullet\,作业成绩 A20\%
\hspace{23pt}\bullet\,小测成绩 B30\%
\hspace{23pt}\bullet\,期末考试成绩 C50\%
\hspace{15pt}因此,总成绩 S 计算公式为:

\displaystyle S = A \times 20\% + B \times 30\% + C \times 50\%

\hspace{15pt}在本题中,由于我们保证,输入的 A,B,C 均为 10 的倍数,所以总成绩一定是一个整数。输出这个整数。

输入描述:
\hspace{15pt}在一行中输入三个非负整数 A,B,C \left(0 \leqq A,B,C \leqq 100\right),分别表示牛牛的作业成绩、小测成绩和期末考试成绩。且保证 A,B,C 均为 10 的整数倍。


输出描述:
\hspace{15pt}输出一个整数 S,表示牛牛的总成绩,满分为 100
示例1

输入

100 100 100

输出

100

说明

S = 100 \times 20\% + 100 \times 30\% + 100 \times 50\% = 20 + 30 + 50 = 100
示例2

输入

70 80 90

输出

83

说明

S = 70 \times 20\% + 80 \times 30\% + 90 \times 50\% = 14 + 24 + 45 = 83

备注:
本题已于下方时间节点更新,请注意题解时效性:
1. 2025-06-03 优化题面文本与格式。
2. 2025-11-20 优化题面文本与格式。
若按百分比的方式计算总成绩,那么就需要考虑浮点数了,但是题目要求输出的是整数,因此可以考虑提取公约数来计算,公约数是 十分之一。
#include <stdio.h>

int main() {
    
    int A = 0, B = 0, C = 0;

    scanf("%d %d %d", &A, &B, &C);

    printf("%d", (A * 2 + B * 3 + C * 5) / 10);

    return 0;
}
发表于 2025-08-05 20:22:43 回复(0)
a,b,c=map(int,input().split())
in_0_and_100=all(0<=x<=100 for x in [a,b,c])
mul_of_10=all(x%10==0 for x in [a,b,c])
s=int(a*0.2+b*0.3+c*0.5)
if in_0_and_100 and mul_of_10:
    print(s)
else:
    print('不符合要求')

发表于 2025-10-24 17:47:45 回复(0)
A,B,C = map(int,input().split())

if A < 0:
    print("输入错误,0≦A")
    exit()
if C > 100:
    print("输入错误,C≦100")
    exit()
S = A*0.2 + B*0.3 + C*0.5
print(int(S))
发表于 2025-07-24 09:36:48 回复(0)
#include <stdio.h>
int main() {
    int A,B,C;
    int Condition = 0;
    while(!Condition){//循环执行,直到输入正确的值
        if(scanf("%d%d%d",&A,&B,&C) != 3){
            printf("输入错误,请按照要求输入\n");
            while(getchar()!='\n');//清空缓冲区
            continue;//跳过并继续循环当前,直到输入正确
        }
        while(getchar()!='\n');//清空缓冲区;
        if(A < 0 || A > 100 || A % 10 != 0 ||
            B < 0 || B > 100 || B % 10 != 0 ||
            C < 0 || C > 100 || C % 10 != 0){
            printf("输入错误!\n");
            continue;
        }
        Condition = 1;//值真,跳出循环执行后续代码。
    } 
    int Score = (A*20)/100+(B*30)/100+(C*50)/100;
    printf("%d",Score);      
    return 0;
}

发表于 2025-06-30 21:43:42 回复(0)
a,b,c = map(int,input().split())
print(int(a*0.2+b*0.3+c*0.5))
发表于 2025-12-08 11:05:51 回复(0)
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            int a = in.nextInt();
            int b = in.nextInt();
            int c = in.nextInt();
            System.out.printf("%.0f",a*0.2+b*0.3+c*0.5);
        }
    }
}

发表于 2025-12-03 22:08:32 回复(0)
#include <iostream>
using namespace std;

int main() {
  unsigned int a,b,c;cin>>a>>b>>c;
  cout<<a*0.2+b*0.3+c*0.5;
}
发表于 2025-11-24 00:16:51 回复(0)
a,b,c = map(int,input().split())
s = a*0.2+b*0.3+c*0.5
print(f"{s:.0f}")

发表于 2025-11-09 22:27:31 回复(0)
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        //使用Scanner录入三个非负整数A,B,C
        Scanner sc=new Scanner(System.in);
        //A B C均为10的整数倍
        int A=sc.nextInt();
        int B=sc.nextInt();
        int C=sc.nextInt();
        //定义一个整数S,表示牛牛的总成绩,并打印
        int S=(A*20+B*30+C*50)/100;
        System.out.println(S);

    }
}
发表于 2025-10-31 15:25:47 回复(0)
#include <stdio.h>

int main() {
    unsigned int A, B, C, result;

    scanf("%d %d %d\r\n", &A, &B, &C);

    if ((A % 10 != 0) || A > 100) {       //成绩输入限制,不大于100,且为10的倍数

        printf("输入的作业成绩A超过范围,请重新输入\r\n");

        return -1;

    } else if ((B % 10 != 0) || B > 100) {

        printf("输入的作业成绩B超过范围,请重新输入\r\n");

        return -2;

    } else if ((C % 10 != 0) || C > 100) {

        printf("输入的考试成绩C超过范围,请重新输入\r\n");

        return -3;

    } else {

        result = (A * 20 + B * 30 + C * 50) / 100;

    }

    printf("%d\r\n", result);

    return 0;
}
发表于 2025-10-02 21:21:36 回复(0)
//好哥哥,别犯我这样的错
#include <stdio.h>
#include <stdlib.h>

int main() {
    void judgeNum(int n);
    int a,b,c;
    int score;
    scanf("%d%d%d", &a, &b,&c);
    judgeNum(a);
    judgeNum(b);
    judgeNum(c);
    score=0.2*a+0.3*b+0.5*c;
    printf("%d\n",score);
    return 0;
}
void judgeNum(int n){
    if(n>=0&&n<=100&&n%10==0){
        ;//输入的数符合要求,不做任何处理操作
    }
    else{
        printf("题中要求0≦A,B,C≦100");

//错误处一
        // return;//
        //在错误处理后直接返回会导致主程序继续执行,不符合逻辑//分清 return 在 void 函数中的作用范围—— 它只能退出当前的 judgeNum 函数,无法终止整个程序。这就是为什么 “用了 return 却达不到终止程序” 的关键原因。
   
    exit(1);//exit(0) 的含义:正常终止
    // exit(a),其中a为非0,程序遇到错误(如输入非法、文件不存在),需要提前终止时使用
    /// 输入不合法时终止程序

    }
}

发表于 2025-09-28 16:08:56 回复(0)
#include <iostream>
#include <iomanip>
using namespace std;

int main() {
    float a,b,c;
    cin >> a >> b >> c ;

    cout << fixed << setprecision(0) << a*0.2+b*0.3+c*0.5 <<endl;
    return 0;
}

发表于 2025-09-22 20:07:28 回复(0)
#include <stdio.h>

int main() {
    int a,b,c;
    scanf("%d %d %d", &a, &b, &c);
    int s=a * 0.2 + b * 0.3 + c * 0.5;
    printf("%d", s);
    return 0;
}
发表于 2025-09-17 23:04:55 回复(0)
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int a = in.nextInt();
        int b = in.nextInt();
        int c = in.nextInt();
        int sum = 0;
        if((a>=0&&a<=100)&&a%10==0)
        {
           if((b>=0&&b<=100)&&b%10==0)
           {
            if((c>=0&&c<=100)&&c%10==0)
            {
               sum = (a*20+b*30+c*50)/100;
            }
           }
        }
        System.out.println(sum);
    }
}还得是if
发表于 2025-09-15 00:29:19 回复(0)
#include <bits/stdc++.h>
using namespace std;
int main() {
    int a, b, c;
    cin >> a >> b >> c;
    if (a % 10 != 0 || b % 10 != 0 || c % 10 != 0) {
        return 0;
    }
    cout << (a * 20 / 100) + (b * 30 / 100) + (c * 50 / 100) << endl;
}
发表于 2025-09-14 10:14:13 回复(0)
package main

import (
    "fmt"
)
func isValidDimension(x int)bool{
    return x >=0 && x <=100 && x%10 == 0
}
func main() {
//狗语言赛高
    var a,b,c int
    fmt.Scan(&a,&b,&c)
    if(isValidDimension(a)&&isValidDimension(b)&&isValidDimension(c)){
        s := (a*2+b*3+c*5)/10
    fmt.Println(s)
    }
   
}
发表于 2025-09-04 23:08:06 回复(0)
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int A = in.nextInt();
        int B = in.nextInt();
        int C = in.nextInt();
        int S = 0;
        if((0<=A && A<=100) && (0<=B && B<=100) && (0<=C && C<=100)){
            if(A%10 == 0 && B%10 == 0 && C%10 == 0){
                S = (int)(A * 0.2 + B * 0.3 + C * 0.5);
                System.out.print(S);
            }
        }
    }
}
发表于 2025-08-25 16:08:45 回复(0)
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
            int a = in.nextInt();
            int b = in.nextInt();
            int c = in.nextInt();
            double s = a*0.2 + b*0.3 + c*0.5;
            System.out.println((int)s);
    }
}

发表于 2025-08-13 11:06:39 回复(0)
#include <iostream>
using namespace std;

int main() {
    int a, b, c;
    cin >> a >> b >> c;

    cout << a*0.2+b*0.3+c*0.5 << endl;

}
// 64 位输出请用 printf("%lld")
发表于 2025-08-05 21:08:34 回复(0)
#include <stdio.h>
int main() {
    int a,b,c,d;
    scanf("%d%d%d",&a,&b,&c);
    d=2e-1*a+3e-1*b+5e-1*c;
    printf("%d\n",d);
    return 0;
}
发表于 2025-08-05 19:58:13 回复(0)