7-8 男生女生 (10 分)

7-8 男生女生 (10 分)
任务描述
给定一个班每个同学的性别,分别输出男女比例,男生学号和女生学号。

输入
第一行一个整数n,0<n≤500表示班级人数。第二行中有n个0(女生)或者1(男生),表示按学号(从1号开始)顺序的每个同学性别。

输出
第一行输出男生与女生的比例,形式为1:?。如果男女生相等,则输出1:1;如果没有男生输出性别为0:1;如果没有女生,性别比输出1:0,否则输出1:?,结果保留2位小数。 第二行从小到大输出男生的学号,学号之间用空格分隔,行首和行尾不能有空格。如果没有男生则输出“no boys”。 第三行从小到大输出女生的学号,学号之间用空格分隔,行首和行尾不能有空格。如果没有女生则输出“no girls”。

输入举例

10
1 0 0 1 0 0 1 1 0 1

输出举例

1:1
1 4 7 8 10
2 3 5 6 9

// 代码如下:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int n,i,a[501],b=0,g=0,d[501],c[501],j=1,k=1;
    double x;
    scanf("%d",&n);
    for(i=1;i<=n;i++){
        scanf("%d",&a[i]);
    }
    for(i=1;i<=n;i++){
        if(a[i]==0){
            d[k]=i;
            k++;
            g=g+1;
        }
        if(a[i]==1){
            c[j]=i;
            j++;
            b=b+1;
        }
    }

       if(g==0){
        printf("1:0\n");
    for(i=1;i<=n;i++){
        if(i==n){
            printf("%d",i);
        }
        else{
        printf("%d ",i);
        }
    }
    printf("\n");
    printf("no girls");
       }
        else if(b==0){
        printf("0:1\n");
        printf("no boys");
        printf("\n");
        for(i=1;i<=n;i++){
        if(i==n){
            printf("%d",i);
        }
        else{
        printf("%d ",i);
        }
    }
       }else{
           if(g==b){
            printf("1:1");
           }else{
         x=g*1.0/b;
         printf("1:%.2lf",x);
           }
           printf("\n");
         for(j=1;j<=b;j++){
            if(j==b){
                printf("%d",c[j]);
            }else{
                printf("%d ",c[j]);
            }
         }
         printf("\n");
         for(k=1;k<=g;k++){
            if(k==g){
                printf("%d",d[k]);
            }
            else{
                printf("%d ",d[k]);
            }
         }

       }

    return 0;
}
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值