2.C语言模拟仿真一孩半政策及打印各种三角形菱形

  • 题目内容:

一孩半,又称独女户二胎,即中国大陆部分农村的一项计划生育政策,第一胎是女孩的夫妻可以生育第二个子女。如果第二胎有n%人工性别选择干预(选择男孩),试问男女比例为多少?

输入n,作为n%


输入格式:

一个整数


输出格式:

一个小数(小数点后保留2位数字)


输入样例:

5


输出样例:

1.03


提示:模拟样本要大,比如模拟100万对夫妇。

输出就是男孩总数除以女孩总数

printf("%.2lf",double);

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 1000000

int main(int argc, const char * argv[]) {
    srand((unsigned)time(NULL));
    int n;
    double girls,boys;
    int i;
    scanf("%d",&n);
    boys=0;
    girls=0;
    for (i=1;i<N; i++) {
        if (rand()%2==1) {
            boys++;
        }
        else{
            girls++;
            if (rand()%100<n) {
                boys++;
            }
            else{
                if (rand()%2==1) {
                    boys++;
                }
                else{
                    girls++;
                }
            }
        }
    }
    printf("%.2lf",boys/girls);
    return 0;
}

错因:如果第二胎有n%人工性别选择干预,此处的%n如何表示出来。

  • 打印乘法表

#include <stdio.h>

int main(int argc, const char * argv[]) {
    int i,j;
    for (i=1; i<=9; i++) {
        for (j=1; j<=i;j++ ) {
            printf("%d*%d=%d ",i,j,i*j);
        }
        printf("\n");
    }
    return 0;
}
  • 打印倒直角三角形

#include <stdio.h>

int main(int argc, const char * argv[]) {
    int i,j;
    for (i=9; i>=1; i--) {
        for (j=1; j<=i; j++) {
            printf("* ");
        }
        printf("\n");
    }
    
    return 0;
}
  • 输出空格与等腰三角形

#include <stdio.h>
int main(){
    int i,j;
    for (i=10; i>=1; i--) {
        for (j=1;j<i; j++) {
            printf(" ");
        }
        for (j=1; j<=11-i; j++) {
            printf("*");
            printf(" ");

        }
        
        printf("\n");
    }
}

  • 打印菱形

#include <stdio.h>
int main(){
    int i,j;
    for (i=10; i>=1; i--) {
        for (j=1;j<i; j++) {
            printf(" ");
        }
        for (j=1; j<=11-i; j++) {
            printf("*");
            printf(" ");

        }
        
        printf("\n");
    }
    
    for (i=1; i<=10; i++) {
        for (j=1;j<i; j++) {
            printf(" ");
        }
        for (j=1; j<=11-i; j++) {
            printf("*");
            printf(" ");
            
        }
        
        printf("\n");
    }
    
}

  • 打印字母菱形

#include <stdio.h>
#include <math.h>
int main(){
    int i,n;
    char c='A';
    scanf("%d",&n);
    for (i=1; i<=2*n-1; i++) {
        int j,k;
        k=n-abs(n-i);
        for (j=1; j<=abs(n-i); j++) {
            printf(" ");
        }
        for (j=1; j<=2*k-1; j++) {
            printf("%c",c);
            
        }
            printf("\n");
            c++;
        
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值