| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 440 人关注过本帖
标题:成绩等第,麻烦指点下
只看楼主 加入收藏
fatezb
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2018-7-14
结帖率:0
  已结贴   问题点数:10  回复次数:5   
成绩等第,麻烦指点下
题目描述
 输入一个学生成绩x(100≥x≥0),判断并输出该学生的成绩等第。(Chengji.pas)
  优秀(Excellent,100≥x≥90)
  良好 (Good,90>x≥80)
  一般(Normal,80>x≥70)
  合格(Pass, 70>x≥60)
  还是不合格(Poor,x<60)


输入
输入一个学生成绩x(100≥x≥0)

输出
输出等第

样例输入
75

样例输出
Normal
提示
case语句的使用方法,还要进行适当转换#include<bits/stdc++.h>
using namespace std;
int main()
{
    double x;
    cin>>x;
    switch()
    {
        case 1:(100>=x)&&(x>=90);cout<<"Excellent";break;
        case 2:(90>x)&&(x>=80);cout<<"Good";break;
        case 3:(80>x)&&(x>=70);cout<<"Normal";break;
        case 4:(70>x)&&(x>=60);cout<<"Pass";break;
        default:cout<<"Poor";break;
    }
    return 0;
}不知道应该怎么做了,烦求指点。
2018-09-26 21:15
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:273
帖 子:6010
专家分:34382
注 册:2011-1-18
  得分:10 
自编语法呀!难道写代码之前从来不看书?连最基础的语法都不懂

如果一定要用switch,那大体应该是
switch( x/10 )
{
case 0: 到 case 5: 如何如何; break;
同上
}
2018-09-26 23:53
fatezb
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2018-7-14
  得分:0 
回复 2楼 rjsp
谢谢,才刚开始学的,
2018-09-27 08:40
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:273
帖 子:6010
专家分:34382
注 册:2011-1-18
  得分:0 
回复 3楼 fatezb
才开始学也要看书呀

假如用 switch 完成
程序代码:
#include <iostream>
using namespace std;

int main( void )
{
    unsigned x;
    cin >> x;

    const char* p = nullptr; // 如果你的编译器太老旧,那nullptr改为NULL
    switch( x/10 )
    {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:  p="Poor";      break;
    case 6:  p="Pass";      break;
    case 7:  p="Normal";    break;
    case 8:  p="Good";      break;
    case 9:
    case 10: p="Excellent"; break;
    }

    cout << p << endl;
}

假如用 if 完成
程序代码:
#include <iostream>
using namespace std;

int main( void )
{
    unsigned x;
    cin >> x;

    if( x < 60 )
        cout << "Poor\n";
    else if( x < 70 )
        cout << "Pass\n";
    else if( x < 80 )
        cout << "Normal\n";
    else if( x < 90 )
        cout << "Good\n";
    else
        cout << "Excellent\n";
}

2018-09-27 09:06
fatezb
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2018-7-14
  得分:0 
回复 4楼 rjsp
嗯嗯,谢谢,用IF会,用CASE就不会,,努力学习
2018-09-27 09:09
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:273
帖 子:6010
专家分:34382
注 册:2011-1-18
  得分:0 
顺手给你个 STL 的方案吧

程序代码:
#include <iostream>
#include <algorithm>
using namespace std;

int main( void )
{
    unsigned x;
    cin >> x;

    cout << (const char*[]){"Poor","Pass","Normal","Good","Excellent"}[clamp(x/10u,5u,9u)-5] << endl;
}

2018-09-27 09:20







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023382 second(s), 8 queries.
Copyright©2004-2018, BCCN.NET, All Rights Reserved