C++小游戏——火炮防御

这篇文章展示了C++代码片段,用于输入火炮数量,处理超出范围的值,计算战斗力总和,并进行模拟战斗,显示最高防御人数。
摘要由CSDN通过智能技术生成

数据较低

最大容量unsigned long long (ULLONG_MAX)

注意一下:

ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);

这两句话,cout——不建议,可能会卡bug,要么不用,要么换printf(    % xxx);(我被戏弄了)

看一下,你的电脑怎么样?

切入正题:代码

1.

#include <bits/stdc++.h>
using namespace std;
unsigned long long a[15000];

2.main()

int main()
{
    int n;
	unsigned long long s=50;
    cin>>n;
    for(int i=1; i<=n; i++)
    {
    	printf("火炮:");
    	cin>>a[i];
    	if(a[i]>150)
    	{
    		while(a[i]>150)
    		{
    			printf("It's to big!");
    			cout<<endl;
    			cin>>a[i];
			}
		}
		if(a[i]<0)
		{
			while(a[i]<=0)
    		{
    			printf("It's not impossible!");
    			cout<<endl;
    			cin>>a[i];
			}
		}
		if(a[i]==0)
		{
			cout<<"无火炮!";
		}
		s+=a[i];
	}
	printf("战斗力总和:");
	cout<<s<<endl;
	unsigned long long j=0,p=1,a=s,jx=100;
	while(a>=0&&jx>=0)
	{
		j++;
		cout<<"test—"<<j<<":"<<endl;
		p*=10;
		if(a>p)
		{
			jx+=10;
			a+=20;
			cout<<p<<"人:Win!"<<endl<<"战斗力总和:"<<a<<endl;
		}
		if(a<=p)
		{
			jx-=20;
			a-=100;
			cout<<p<<"人:Lose!"<<endl<<"战斗力总和:"<<a<<endl;
		}
		if(p*10==0||p==0||a>=1000000000||a-100<=0||a-100>=1000000000)
		{
			break;
		}
	}
	cout<<"最高防御人数:"<<p/10;
    return 0;
}

全部代码:

#include <bits/stdc++.h>
using namespace std;
unsigned long long a[15000];
int main()
{
    int n;
	unsigned long long s=50;
    cin>>n;
    for(int i=1; i<=n; i++)
    {
    	printf("火炮:");
    	cin>>a[i];
    	if(a[i]>150)
    	{
    		while(a[i]>150)
    		{
    			printf("It's to big!");
    			cout<<endl;
    			cin>>a[i];
			}
		}
		if(a[i]<0)
		{
			while(a[i]<=0)
    		{
    			printf("It's not impossible!");
    			cout<<endl;
    			cin>>a[i];
			}
		}
		if(a[i]==0)
		{
			cout<<"无火炮!";
		}
		s+=a[i];
	}
	printf("战斗力总和:");
	cout<<s<<endl;
	unsigned long long j=0,p=1,a=s,jx=100;
	while(a>=0&&jx>=0)
	{
		j++;
		cout<<"test—"<<j<<":"<<endl;
		p*=10;
		if(a>p)
		{
			jx+=10;
			a+=20;
			cout<<p<<"人:Win!"<<endl<<"战斗力总和:"<<a<<endl;
		}
		if(a<=p)
		{
			jx-=20;
			a-=100;
			cout<<p<<"人:Lose!"<<endl<<"战斗力总和:"<<a<<endl;
		}
		if(p*10==0||p==0||a>=1000000000||a-100<=0||a-100>=1000000000)
		{
			break;
		}
	}
	cout<<"最高防御人数:"<<p/10;
    return 0;
}

#include <bits/stdc++.h>
using namespace std;
unsigned long long a[15000];
int main()
{
    int n;
    unsigned long long s=50;
    cin>>n;
    for(int i=1; i<=n; i++)
    {
        printf("火炮:");
        cin>>a[i];
        if(a[i]>150)
        {
            while(a[i]>150)
            {
                printf("It's to big!");
                cout<<endl;
                cin>>a[i];
            }
        }
        if(a[i]<0)
        {
            while(a[i]<=0)
            {
                printf("It's not impossible!");
                cout<<endl;
                cin>>a[i];
            }
        }
        if(a[i]==0)
        {
            cout<<"无火炮!";
        }
        s+=a[i];
    }
    printf("战斗力总和:");
    cout<<s<<endl;
    unsigned long long j=0,p=1,a=s,jx=100;
    while(a>=0&&jx>=0)
    {
        j++;
        cout<<"test—"<<j<<":"<<endl;
        p*=10;
        if(a>p)
        {
            jx+=10;
            a+=20;
            cout<<p<<"人:Win!"<<endl<<"战斗力总和:"<<a<<endl;
        }
        if(a<=p)
        {
            jx-=20;
            a-=100;
            cout<<p<<"人:Lose!"<<endl<<"战斗力总和:"<<a<<endl;
        }
        if(p*10==0||p==0||a>=1000000000||a-100<=0||a-100>=1000000000)
        {
            break;
        }
    }
    cout<<"最高防御人数:"<<p/10;
    return 0;
}
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值