第18关:任务06-08-18 餐饮服务质量调查打分

第18关:任务06-08-18 餐饮服务质量调查打分

#include <stdio.h>
int uu(int a1,int a2,int a3,int a4,int a5){
    int x,b;
     x=((a1>a2)?a1:a2)>a3?((a1>a2)?a1:a2):a3;   //选出最大数,最大数即为行数。
     b=((x>a4)?x:a4)>a5?((x>a4)?x:a4):a5;        
     return b;
}
int main(){
    int a;
    scanf("%d",&a);
    for(int i=1;i<=a;i++){
    int v,a1=0,a2=0,a3=0,a4=0,a5=0;
    scanf("%d",&v);
    for(int k=1;k<=v;k++){
    int b;
    scanf("%d",&b);
    switch(b){
    case 1:a1++;break;
    case 2:a2++;break;
    case 3:a3++;break;
    case 4:a4++;break;
    case 5:a5++;break;
    }
    }
    int r[5];
    r[0]=a1,r[1]=a2,r[2]=a3,r[3]=a4,r[4]=a5;
    int j=uu(a1,a2,a3,a4,a5),o[10],m=0;
    for(int u=j;u>=1;u--){         
        o[m]=0;
        if(r[4]>=u){           //得到一行有多少'*',以便以后判断好换行。
        o[m]++;
        r[4]--;}
        if(r[3]>=u){       
        o[m]++;
        r[3]--;}
        if(r[2]>=u){
        o[m]++;
        r[2]--;}
        if(r[1]>=u){
        o[m]++;
        r[1]--;}
        if(r[0]>=u){
        o[m]++;
        r[0]--;}
        m++;
    }
    m=0;
    for(j;j>=1;j--,m++){
    if(a1==j){
    o[m]--;
    printf("*");
    a1--;
    if(o[m]==0){
    printf("\n");
    continue;
    }
    printf(" ");
    }
    else
    printf("  ");
    if(a2==j){
    o[m]--;
    printf("*");
    a2--;
    if(o[m]==0){       //处理输出。
    printf("\n");
    continue;
    }
    printf(" ");
    }
    else
    printf("  ");
    if(a3==j){
    o[m]--;
    printf("*");
     a3--;
    if(o[m]==0){
    printf("\n");
    continue;
    }
    printf(" ");
    }
    else
    printf("  ");
    if(a4==j){
    o[m]--;
    printf("*");
    a4--;
    if(o[m]==0){
    printf("\n");
    continue;
    }
    printf(" ");
    }
    else
    printf("  ");
    if(a5==j){
    printf("*");
    a5--;}
    printf("\n");
    }
    printf("1 2 3 4 5\n");
    }
    return 0;
}

100

  • 任务要求
  • 评论1
任务描述
 
  1. 在商业和科学研究中,人们经常需要对数据进行分析并将结果以直方图的形式显示出来,这会大大增加这些数据的直观性,也便于数据的分析与对比。下面以顾客对餐饮服务打分为例,输入一个正整数repeat (0<repeat<10),做repeat次下列运算:
  2. 输入一个正整数n(1≤n≤20),表示有n个学生被邀请来给自助餐厅的食品和服务质量打分,分数划分为1~5这5个等级(1表示最低分,5表示最高分),试统计调查结果,并用*打印出如下形式的统计结果直方图。
输入格式:
 
  1. 第1个整数repeat为数据组数,一共有repeat组数据,请分别处理每组数据,每组数据输出一个直方图。
  2. 接下来为repeat组数据,每组数据的第1个数为打分人数n,接下来为这n个人的n个打分。
输出格式:
 
  1. 按输出样例的样式输出结果。
输入样例:
 
  1. 1
  2. 10
  3. 1 2 2 3 3 5 2 2 3 5
输出样例:
 
  1. *
  2. * *
  3. * * *
  4. * * * *
  5. 1 2 3 4 5
输入样例:
 
  1. 2
  2. 10
  3. 1 1 1 1 1 2 3 4 5 5
  4. 20
  5. 1 1 1 2 2 2 3 3 3 4 5 1 2 3 4 2 2 3 5 2
输出样例:
 
  1. *
  2. *
  3. *
  4. * *
  5. * * * * *
  6. 1 2 3 4 5
  7. *
  8. *
  9. * *
  10. * * *
  11. * * *
  12. * * * * *
  13. * * * * *
  14. 1 2 3 4 5

开始你的任务吧,祝你成功!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值