抛硬币

题目要求:

编写代码实现以下功能:

1、抛硬币100次,记录情况:正面朝上为1,反面朝上为0;

2、统计0出现的总次数total0,1出现的总次数total1;

3、统计0连续出现的最大次数max0,1连续出现的最大次数max1;

4、如果需要,提供中间变量名供大家参考:current0,current1;

5、举例:假设投币结果cointoss="0101001101110",则total0=6,total1=7,max0=2,max1=3.

 

代码:

#include <bits/stdc++.h>
using namespace std;
int main()
{    
    srand((int)time(NULL));
    int a[100];
    for (int i=0;i<100;i++)
    {
        a[i]=rand()%2;
    }
    for (int i=0;i<100;i++)
    {
        if(i!=99)
            cout<<a[i];
        else
            cout<<a[i]<<endl;
    }
    int total0=0,total1=0,max0=0,max1=0;
    int sum0=0,sum1=0;
    for (int i=0;i<100;i++)
    {
    
        if(a[i]==0)
        {
            total0++;sum0++;sum1=0;
            if (sum0>max0)
            {
                max0=sum0;
            }
        }
        else
        {
            total1=total1+1;sum1=sum1+1;sum0=0;
            if (sum1>max1)
            {
                max1=sum1;
            }
        }
        }
    cout<<"反面朝上的次数为:"<<total0<<endl; 
    cout<<"正面朝上的次数为:"<<total1<<endl;
    cout<<"连续反面朝上的最大次数为:"<<max0<<endl;
    cout<<"连续正面朝上的最大次数为:"<<max1<<endl;
    return 0;
}

 

上一篇:算法分析:三个数的最大乘积


下一篇:C语言仅凭自学能到什么高度?