week1的作业题 /模拟

1.问题描述

image.png

image.png

因为只需要做出对五种烷烃的判断

所以其实需要做的只是找出五种不同的烷烃的特征(这里我选取的是五种烷烃最高的碳碳键的数目)
首先观察2,2-dimethylbutane 单个碳原子最高生成的碳碳键的数目是4个,n-hexane则是两个(一条单链无分支),而剩下几种都是最高生成碳碳键的数目为三,再看其他三个的区别。

2,3-dimethylbutane生成的三个碳碳键的碳原子所相邻的两个碳原子,分别有一个或三个碳碳键;2-methylpentane为一个或者两个碳碳键,而3-methylpentane生成的三个碳碳键的碳原子所相邻的两个碳原子上都有两个碳碳键。

区别找到后我们就是应该统计全部的碳原子所含有的碳碳键,以及碳原子相邻的碳原子编号。
完整代码就写了出来

struct xunzhao
{
    int tl;
    int times;
    int next[5];
};

用这样一个结构体记录每个碳原子,有它自己的碳碳键个数和一个临接数组(记录碳碳键相邻的碳原子编号,tl为此记录个数)
然后完成统计和判断

#include
#include
using namespace std;
struct xunzhao
{
    int tl;
    int times;
    int next[5];
};
xunzhao p[7];
int a[5][2];
int main() 
{
    int n;
    cin>>n;
    for(int i=0;i>a[j][0]>>a[j][1];
            p[a[j][0]].next[p[a[j][0]].times]=a[j][1];
            p[a[j][1]].next[p[a[j][1]].times]=a[j][0];
            p[a[j][0]].times++;
            p[a[j][1]].times++;
            if(p[a[j][0]].times>max)
            {
                max=p[a[j][0]].times;
                maxtl=a[j][0];
            }
            if(p[a[j][1]].times>max)
            {
                max=p[a[j][1]].times;
                maxtl=a[j][1];
            }
            cout<<" "<

2.题目描述:


看起来又是一道数据处理的题目,其实因为给分的方式都写的很明白,其实数据处理起来思路比上题更明确。

观察数据的输入,是a(b) 0 a -a几种形式 需要统计的就是ac了多少道题(只有a(b) a两个需要统计)其他筛掉。。所以不妨用sscanf作一个筛选和数据处理。用“%d(%d)”来对数据做一下输入处理,拿到两个数(不一定有两个,但是sscanf有返回值可以直接判断拿到几个。拿不到两个数可以不处理)
然后对数据进行统计(根据所给的罚时计算总罚时),然后有所有数据之后开开心心的……sort排序(sort自己写一个compare函数,方法就根据题目里面的)
然后是代码

#include
#include
#include
#include
using namespace std;
struct paixu
{
    int AC;
    int fashi;
    char name[20];
};
paixu a[10000];
bool compare(paixu &a,paixu &b)
{
    if(a.AC>b.AC)
    {
        return 1;
    }
    else if(a.ACb.fashi)
        {
            return 0;
        }
        else
        {
            return 
            strcmp(a.name,b.name)<0;
        }
    }
    
    
}
int main()
{
    int n,m,res;
    cin>>n>>m;
    char words[15];
    int i=0;
    while(~scanf("%10s",a[i].name))
    {
        a[i].AC=0;
        a[i].fashi=0;
        for(int j=0;j0)
            {
                a[i].AC++;
                a[i].fashi+=t;
            }
        }
        i++;
    }
    //排序 
    sort(a,a+i,compare);
    for(int j=0;j

3.题目描述



(预警:因为我对二位数组不太熟悉,这题出现大量的……代码,慎看)

其实题目没什么难的,就是规定一个发牌的顺序(转圈圈),规定一个发牌点,然后依次的发牌,一个人发一张,带着花色带着面值(面值需要作一个转化),然后再排序。

难点大概就是,排序函数。还有,转圈圈的统计方式(其实一个二维数组作一个膜系统最简单 but,开始我不知道二维数组该怎么sort,一上头,手写了一个巨复杂的绕圈圈)

#include
#include
#include
#include
#include
#include
using namespace std;
struct pukepai
{
    char huase;
    int mianzhi;
    char paimian;
};
int chars(char a)
{
    if(a=='C'){return 1;}
    if(a=='D'){return 2;}
    if(a=='S'){return 3;}
    if(a=='H'){return 4;}
    
}
bool compare(pukepai &a,pukepai &b)
{
    if(chars(a.huase)!=chars(b.huase))
        return chars(a.huase)>t)
    {
    
        pukepai pukepaiN[13];
        pukepai pukepaiS[13];
        pukepai pukepaiE[13];
        pukepai pukepaiW[13];
        
        
        if(t=='N')
        {
            //1是北; 
            begin=2;
        }
        else if(t=='E')
        {
            //2是东 
            begin=3;
        }
        else if(t=='S')
        {
            //3是南 
            begin=4;
        }
        else if(t=='W')
        {
            //4是西 
            begin=1;
        }
        else if(t=='#')
        {
            //4是西 
            break;
        }
        int il[4];
        for(int j=0;j<4;j++) {il[j]=0;}
        string x;
        cin>>x;
        int i=0;
        while(i<52)
        {
            if(begin==1)
            {
                pukepaiN[il[0]].huase=x[i];
                pukepaiN[il[0]].paimian=x[i+1];
                pukepaiN[il[0]].mianzhi=change(x[i+1]);
                i+=2;
                il[0]++;
                if(i>=52) 
                    break;
                pukepaiE[il[1]].huase=x[i];
                pukepaiE[il[1]].paimian=x[i+1];
                pukepaiE[il[1]].mianzhi=change(x[i+1]);
                i+=2;
                il[1]++;
                if(i>=52) 
                    break;
                pukepaiS[il[2]].huase=x[i];
                pukepaiS[il[2]].paimian=x[i+1];
                pukepaiS[il[2]].mianzhi=change(x[i+1]);
                i+=2;
                il[2]++;
                if(i>=52) 
                    break;
                pukepaiW[il[3]].huase=x[i];
                pukepaiW[il[3]].paimian=x[i+1];
                pukepaiW[il[3]].mianzhi=change(x[i+1]);
                i+=2;
                il[3]++;
            }
            if(begin==2)
            {
                pukepaiE[il[1]].huase=x[i];
                pukepaiE[il[1]].paimian=x[i+1];
                pukepaiE[il[1]].mianzhi=change(x[i+1]);
                i+=2;
                il[1]++;
                if(i>=52) 
                    break;
                pukepaiS[il[2]].huase=x[i];
                pukepaiS[il[2]].paimian=x[i+1];
                pukepaiS[il[2]].mianzhi=change(x[i+1]);
                i+=2;
                il[2]++;
                if(i>=52) 
                    break;
                pukepaiW[il[3]].huase=x[i];
                pukepaiW[il[3]].paimian=x[i+1];
                pukepaiW[il[3]].mianzhi=change(x[i+1]);
                i+=2;
                il[3]++;    
                if(i>=52) 
                    break;
                pukepaiN[il[0]].huase=x[i];
                pukepaiN[il[0]].paimian=x[i+1];
                pukepaiN[il[0]].mianzhi=change(x[i+1]);
                i+=2;
                il[0]++;
            }
            if(begin==3)
            {
                pukepaiS[il[2]].huase=x[i];
                pukepaiS[il[2]].paimian=x[i+1];
                pukepaiS[il[2]].mianzhi=change(x[i+1]); 
                if(i>=52) 
                    break;
                i+=2;
                il[2]++;
                pukepaiW[il[3]].huase=x[i];
                pukepaiW[il[3]].paimian=x[i+1];
                pukepaiW[il[3]].mianzhi=change(x[i+1]); 
                i+=2;
                il[3]++;
                if(i>=52) 
                    break;  
                pukepaiN[il[0]].huase=x[i];
                pukepaiN[il[0]].paimian=x[i+1];
                pukepaiN[il[0]].mianzhi=change(x[i+1]);
                i+=2;
                il[0]++;
                if(i>=52) 
                    break;
                pukepaiE[il[1]].huase=x[i];
                pukepaiE[il[1]].paimian=x[i+1];
                pukepaiE[il[1]].mianzhi=change(x[i+1]);
                i+=2;
                il[1]++;
            }
            if(begin==4)
            {
                pukepaiW[il[3]].huase=x[i];
                pukepaiW[il[3]].paimian=x[i+1];
                pukepaiW[il[3]].mianzhi=change(x[i+1]);
                i+=2;
                il[3]++;    
                if(i>=52) 
                    break;
                pukepaiN[il[0]].huase=x[i];
                pukepaiN[il[0]].paimian=x[i+1];
                pukepaiN[il[0]].mianzhi=change(x[i+1]);
                i+=2;
                il[0]++;
                if(i>=52) 
                    break;
                pukepaiE[il[1]].huase=x[i];
                pukepaiE[il[1]].paimian=x[i+1];
                pukepaiE[il[1]].mianzhi=change(x[i+1]);
                i+=2;
                il[1]++;
                if(i>=52) 
                    break;
                pukepaiS[il[2]].huase=x[i];
                pukepaiS[il[2]].paimian=x[i+1];
                pukepaiS[il[2]].mianzhi=change(x[i+1]);
                i+=2;
                il[2]++;
            }
        }
        cin>>x;
        i=0;
        begin=(begin+1)%4+1;
    //  1 2 3 4
        while(i<52)
        {
            if(begin==1)
            {
                pukepaiN[il[0]].huase=x[i];
                pukepaiN[il[0]].paimian=x[i+1];
                pukepaiN[il[0]].mianzhi=change(x[i+1]);
                i+=2;
                il[0]++;
                if(i>=52) 
                    break;
                pukepaiE[il[1]].huase=x[i];
                pukepaiE[il[1]].paimian=x[i+1];
                pukepaiE[il[1]].mianzhi=change(x[i+1]);
                i+=2;
                il[1]++;
                if(i>=52) 
                    break;
                pukepaiS[il[2]].huase=x[i];
                pukepaiS[il[2]].paimian=x[i+1];
                pukepaiS[il[2]].mianzhi=change(x[i+1]);
                i+=2;
                il[2]++;
                if(i>=52) 
                    break;
                pukepaiW[il[3]].huase=x[i];
                pukepaiW[il[3]].paimian=x[i+1];
                pukepaiW[il[3]].mianzhi=change(x[i+1]);
                i+=2;
                il[3]++;
            }
            if(begin==2)
            {
                pukepaiE[il[1]].huase=x[i];
                pukepaiE[il[1]].paimian=x[i+1];
                pukepaiE[il[1]].mianzhi=change(x[i+1]);
                i+=2;
                il[1]++;
                if(i>=52) 
                    break;
                pukepaiS[il[2]].huase=x[i];
                pukepaiS[il[2]].paimian=x[i+1];
                pukepaiS[il[2]].mianzhi=change(x[i+1]);
                i+=2;
                il[2]++;
                if(i>=52) 
                    break;
                pukepaiW[il[3]].huase=x[i];
                pukepaiW[il[3]].paimian=x[i+1];
                pukepaiW[il[3]].mianzhi=change(x[i+1]);
                i+=2;
                il[3]++;    
                if(i>=52) 
                    break;
                pukepaiN[il[0]].huase=x[i];
                pukepaiN[il[0]].paimian=x[i+1];
                pukepaiN[il[0]].mianzhi=change(x[i+1]);
                i+=2;
                il[0]++;
            }
            if(begin==3)
            {
                pukepaiS[il[2]].huase=x[i];
                pukepaiS[il[2]].paimian=x[i+1];
                pukepaiS[il[2]].mianzhi=change(x[i+1]); 
                if(i>=52) 
                    break;
                i+=2;
                il[2]++;
                pukepaiW[il[3]].huase=x[i];
                pukepaiW[il[3]].paimian=x[i+1];
                pukepaiW[il[3]].mianzhi=change(x[i+1]); 
                i+=2;
                il[3]++;
                if(i>=52) 
                    break;  
                pukepaiN[il[0]].huase=x[i];
                pukepaiN[il[0]].paimian=x[i+1];
                pukepaiN[il[0]].mianzhi=change(x[i+1]);
                i+=2;
                il[0]++;
                if(i>=52) 
                    break;
                pukepaiE[il[1]].huase=x[i];
                pukepaiE[il[1]].paimian=x[i+1];
                pukepaiE[il[1]].mianzhi=change(x[i+1]);
                i+=2;
                il[1]++;
            }
            if(begin==4)
            {
                pukepaiW[il[3]].huase=x[i];
                pukepaiW[il[3]].paimian=x[i+1];
                pukepaiW[il[3]].mianzhi=change(x[i+1]);
                i+=2;
                il[3]++;    
                if(i>=52) 
                    break;
                pukepaiN[il[0]].huase=x[i];
                pukepaiN[il[0]].paimian=x[i+1];
                pukepaiN[il[0]].mianzhi=change(x[i+1]);
                i+=2;
                il[0]++;
                if(i>=52) 
                    break;
                pukepaiE[il[1]].huase=x[i];
                pukepaiE[il[1]].paimian=x[i+1];
                pukepaiE[il[1]].mianzhi=change(x[i+1]);
                i+=2;
                il[1]++;
                if(i>=52) 
                    break;
                pukepaiS[il[2]].huase=x[i];
                pukepaiS[il[2]].paimian=x[i+1];
                pukepaiS[il[2]].mianzhi=change(x[i+1]);
                i+=2;
                il[2]++;
            }
        }
        sort(pukepaiE,pukepaiE+13,compare);
        sort(pukepaiW,pukepaiW+13,compare);
        sort(pukepaiN,pukepaiN+13,compare);
        sort(pukepaiS,pukepaiS+13,compare);
        cout<<"South player:"<

你可能感兴趣的:(week1的作业题 /模拟)