Problem D: 成绩的柱状图

103 篇文章 11 订阅

实验6
Problem D: 成绩的柱状图
Description
柱状图(Histogram),也称条图(英文:bar graph)、长条图(英文:bar chart)、条状图,是一种以长方形的长度为变量的表达图形的统计报告图,由一系列高度不等的纵向条纹表示数据分布的情况,用来比较两个或以上的价值(不同时间或者不同条件),只有一个变量,通常利用于较小的数据集分析。柱状图图亦可横向排列,或用多维方式表达。

你的任务是把学生成绩转换成直观的柱状图表示。

Input
第一行为一个整数N(N<=200),表示有N个学生。后面有N行输入。每行有两部分,第一部分是学生姓名(不超过8个字符,且不含空白符);第二部分是学生的成绩,均为0~100之间的整数。
Output
输出有N行,顺序与输入对应,每行包括以下内容:

  1. 学生的姓名,占8个字符、右对齐;

  2. 一个空格;

  3. 一条竖线,用“|”表示;

  4. 一个表示分数的长条:由“=”组成。学生成绩为x,就输出一个长度为x个长条。长条是左对齐的;

  5. 一个回车(用来换行!)。

Sample Input

10
Tom 46
Jerry 88
Zhang3 99
Li4 100
Wang5 95
Zhao6 60
Liu7 1
Wang8 0
Song9 5
Ma10 45

Sample Output

     Tom |==============================================
   Jerry |========================================================================================
  Zhang3 |===================================================================================================
     Li4 |====================================================================================================
   Wang5 |===============================================================================================
   Zhao6 |============================================================
    Liu7 |=
   Wang8 |
   Song9 |=====
    Ma10 |=============================================

答案:

#include<stdio.h>
#include<string.h>

int main()
{
    int n;
    scanf("%d",&n);
    for(int i=0;i<n;i++){
        getchar();
        char name[9];
        int score;
        scanf("%s %d",name,&score);
        int len=strlen(name);
        for(int i=0;i<8-len;i++){
            printf(" ");
        }
        printf("%s |",name);
        for(int i=0;i<score;i++){
            printf("=");
        }
        printf("\n");
    }

    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值