加油好好干

每一次数学模型培训都要熬夜我也醉了,这是同伴写的算法代码,看的我这个小C++学徒也醉了!

#include<stdio.h>

int round1(    float x)
{
 return ((int)(x+0.5));
}
void main()
{
    int c[13]={6,7,8,9,10,11,12,13,14,15,16,17,18};
    int i,j,y1,y2,p;
    float y,s=225,a;
    int e[13];
    float d[13];
    int count1[13]={0,0,0,0,0,0,0,0,0,0,0,0,0}; int count2=0;int count[13]={0,0,0,0,0,0,0,0,0,0,0,0,0}; int count3=0;
    int sm[14][20]; int se=0;
    int m=0,n,k=0,kk=0;int n2=0;
    int am[400]={0,0};
    int bm[13]={1,2,3,4,5,6,7,8,9,10,11,12,13};
    printf("输入区间最小营地数=");
    scanf(" %d",&y1);
    printf("输入区间最大营地数=");
    scanf(" %d",&y2);
    printf("D的不同重复项输入值=");
    scanf(" %d",&p);

    for(y=y1;y<=y2;)//输入不同的y。可以算出距离项e[j]
    {
        a=s/(y+1);

        for ( i=0;i<13;i++)//对每个不同的e[j]取整
        {

                d[i]=(y+1)/(c[i]+1);
                e[i]=round1(d[i]);

            for (j=1;j<19;j++)//用另一个矩阵进行保存
            {
                {if(j<=c[i])
                sm[i][j-1]=e[i]*j;
                else sm[i][j-1]=0;}
            }
        }
        for(i=0;i<13;i++)
        {
            for (j=0;j<13;j++)
                    {
                        if(e[j]!=e[j+1])
                        count1[i]=count1[i]+1;//对不同的距离项记数

                    }

                 for (n2=0;n2<13;n2++) //增加一列相同项
            sm[n2][19]=sm[n2][0];
                for (n2=0;n2<13;n2++)//可能出错的地方
                        {
                    if (sm[n2][19]==sm[n2+1][19])
                           for(j=0;j<18;j++)
                            sm[n2+1][j]=0;
                }

            /*    for (n2=0;n2<13;n2++) //输出修正后的矩阵
                    {    printf("%d,",n2+1);
                        for(j=0;j<18;j++)
                    printf("%d ",sm[n2][j]);
                        putchar(‘\n‘);

                    }*/
        }
    for(i=0;i<13;i++)
        {
                if(count1[i]==p)//12个不同的距离项

                {    k=0;kk=0;count3=0;
                    for (i=0;i<12;i++)

                    {
                       for(j=0;j<18;j++)
                       {    if(sm[i][j]==0)break;
                            else
                            for( n=i+1;n<13;n++)
                            for ( m=j;m<18;m++)
                          if(sm[i][j]==sm[n][m])//sm[i][j]和下一行的全部进行比较,计算相同数字的组数
                 {am[k]=i+1;am[k-1]=n+1;k=k+2;/*printf("%d,%d   ",i+1,n+1);*/    }//输出不同行数
                       }

                    }
                kk=k-2;
                    for(k=0;k<=kk;k++)
                    {
                        if(am[k]==1)
                            count[0]=1+count[0];
                        if(am[k]==2)
                            count[1]=1+count[1];
                        if(am[k]==3)
                            count[2]=1+count[2];
                        if(am[k]==4)
                            count[3]=1+count[3];
                        if(am[k]==5)
                            count[4]=1+count[4];

                        if(am[k]==6)
                            count[5]=1+count[5];
                        if(am[k]==7)
                            count[6]=1+count[6];
                        if(am[k]==8)
                            count[7]=1+count[7];
                        if(am[k]==9)
                            count[8]=1+count[8];
                        if(am[k]==10)
                            count[9]=1+count[9];
                        if(am[k]==11)
                            count[10]=1+count[10];
                        if(am[k]==12)
                            count[11]=1+count[11];
                        if(am[k]==13)
                            count[12]=1+count[12];

                    }

                printf("营地数=%.0f\n",y);
                    for(n=0;n<13;n++)
                        if (count[n]==0)//分别输出没有出现过相同项的队数的编码
                    if (sm[n][0]!=0)
                    {
                        printf("没有出现重复项的编号=%d,",n+1);
                        count3=count3+1;
                    }
                        printf("没有出现重复项编号的总数=%d ",count3);
                        putchar(‘\n‘);
                    for(i=0;i<13;i++)//对记数项清零
                        count[i]=0;

                }

            }

    for(i=0;i<13;i++)//对记数项清零
                        count1[i]=0;

        y++    ;

    }

}

代码二:比较位置矩阵最大最小的位置项

#include<stdio.h>

int round1(    float x)
{
 return ((int)(x+0.5));
}

void main1()
{
    int c[13]={6,7,8,9,10,11,12,13,14,15,16,17,18};
    int i,j;  int i1=0,i2=0,i3=0;int max=0,min=0;
    int sm[13][18];int d[13],e[13];int n2;
    float y,s=225,a;

    for(y=18;y<=23;y++)//输入不同的y。可以算出距离项e[j]
    {
        a=s/(y+1);

                    for ( i=0;i<13;i++)//对每个不同的e[j]取整
                    {

                            d[i]=(y+1)/(c[i]+1);
                            e[i]=round1(d[i]);

                        for (j=1;j<19;j++)//用另一个矩阵进行保存
                            if(j<=c[i])
                            sm[i][j-1]=e[i]*j;
                            else sm[i][j-1]=0;

                    }

                for (n2=0;n2<13;n2++) //增加一列相同项
            sm[n2][18]=sm[n2][0];

                for (n2=0;n2<12;n2++)
                        {if (sm[n2][18]==sm[n2+1][18])
                           for(j=0;j<18;j++)
                            sm[n2+1][j]=0;}

                for (n2=0;n2<13;n2++) //输出修正后的矩阵
                    {    printf("%d,",n2+1);
                        for(j=0;j<18;j++)
                    printf("%d ",sm[n2][j]);
                        putchar(‘\n‘);

                    }

                putchar(‘\n‘);
        max=sm[0][0];
   for (i1=0;i1<13;i1++)
       for(i2=0;i2<18;i2++)
           if(sm[i1][i2]>max)max=sm[i1][i2];
        min=sm[0][0];
   for (i1=0;i1<13;i1++)
       for(i2=0;i2<18;i2++)
          if(sm[i1][i2]!=0) if(sm[i1][i2]<min)min=sm[i1][i2];

            printf("\n%d,%d\n",max,min);    

        putchar(‘\n‘);
    }

}

代码三:营地间冲突统计输出未(修正)
#include<stdio.h>

int round1(    float x)
{
 return ((int)(x+0.5));
}

void main()
{
    int c[13]={6,7,8,9,10,11,12,13,14,15,16,17,18};
    int i,j,y1,y2,p;
    float y,s=225,a;
    int e[13];
    float d[13];
    int count1[13]={0,0,0,0,0,0,0,0,0,0,0,0,0}; int count2=0;int count[13]={0,0,0,0,0,0,0,0,0,0,0,0,0}; int count3=0;
    int sm[13][18]; int se=0;
    int m=0,n,k=0,kk=0;int n2=0;
    int am[400]={0,0};
    int bm[13]={1,2,3,4,5,6,7,8,9,10,11,12,13};
    printf("输入区间最小营地数=");
    scanf(" %d",&y1);
    printf("输入区间最大营地数=");
    scanf(" %d",&y2);
    printf("D的不同重复项输入值=");
    scanf(" %d",&p);

    for(y=y1;y<=y2;)//输入不同的y。可以算出距离项e[j]
    {
        a=s/(y+1);

        for ( i=0;i<13;i++)//对每个不同的e[j]取整
        {

                d[i]=(y+1)/(c[i]+1);
                e[i]=round1(d[i]);

            for (j=1;j<19;j++)//用另一个矩阵进行保存
            {
                {if(j<=c[i])
                sm[i][j-1]=e[i]*j;
                else sm[i][j-1]=0;}
            }

        }
        for(i=0;i<13;i++)
        {
            for (j=0;j<13;j++)
                    {
                        if(e[j]!=e[j+1])
                            count1[i]=count1[i]+1;//对不同的距离项记数

                    }
                putchar(‘\n‘);

                        for (i=0;i<13;i++)
                          if(sm[i][0]==sm[i+1][0])

                          {for(j=0;j<18;j++) sm[i+1][j]=0;i++;}//把相同的距离的队数清零
                        putchar(‘\n‘);
                 for (n2=0;n2<13;n2++) //增加一列相同项
            sm[n2][18]=sm[n2][0];

                for (n2=0;n2<12;n2++)
                        {if (sm[n2][18]==sm[n2+1][18])
                           for(j=0;j<18;j++)
                            sm[n2+1][j]=0;}

        }

            for(i=0;i<13;i++)
        {
                if(count1[i]==p)//12个不同的距离项

                {    k=0;kk=0;count3=0;
                    for (i=0;i<12;i++)

                    {
                       for(j=0;j<18;j++)
                       {    if(sm[i][j]==0)break;
                            else
                            for( n=i+1;n<13;n++)
                            for ( m=j;m<18;m++)
                          if(sm[i][j]==sm[n][m])//sm[i][j]和下一行的全部进行比较,计算相同数字的组数
                          {am[k]=i+1;am[k-1]=n+1;k=k+2;/*printf("%d,%d   ",i+1,n+1);*/    }
                       }

                    }
                kk=k-2;

                    for(k=0;k<=kk;k++)
                    {
                        if(am[k]==1)
                            count[0]=1+count[0];
                        if(am[k]==2)
                            count[1]=1+count[1];
                        if(am[k]==3)
                            count[2]=1+count[2];
                        if(am[k]==4)
                            count[3]=1+count[3];
                        if(am[k]==5)
                            count[4]=1+count[4];

                        if(am[k]==6)
                            count[5]=1+count[5];
                        if(am[k]==7)
                            count[6]=1+count[6];
                        if(am[k]==8)
                            count[7]=1+count[7];
                        if(am[k]==9)
                            count[8]=1+count[8];
                        if(am[k]==10)
                            count[9]=1+count[9];
                        if(am[k]==11)
                            count[10]=1+count[10];
                        if(am[k]==12)
                            count[11]=1+count[11];
                        if(am[k]==13)
                            count[12]=1+count[12];

                    }

                printf("营地数=%.0f\n",y);
                    for(n=0;n<13;n++)
                        if (count[n]==0)//分别输出没有出现过相同项的队数的编码
                    if (sm[n][0]!=0)    {    printf("没有出现重复项的编号=%d,",n+1);count3=count3+1;}
                            printf("没有出现重复项编号的总数=%d ",count3);
                            putchar(‘\n‘);
                    for(i=0;i<13;i++)//对记数项清零
                        count[i]=0;

                }

            }

    for(i=0;i<13;i++)//对记数项清零
                        count1[i]=0;

        y++    ;
时间: 2024-10-08 22:58:15

加油好好干的相关文章

好好写,好好干-PHP基础(二)

hi 好久没写,昨儿一写,感觉还是有人看的,至少是有一两个评论的~~好好干! 每天需要坚持的就那么4件事儿:写这个,学一点法语,看会儿书,锻炼.单身狗也有好处. 1.PHP 一.PHP基础(二) 1.3 数据类型 8种——4种标量:布尔boolean,整型integer,浮点float/双精度double,字符串string:2种复合:数组array,对象object:2种特殊:资源resource,NULL无: 推荐记住英文,在学习的过程中,变量通常都是这么来命名的. php是弱类型语言,也就

史蒂夫开发的规划设计方科技和好好干

 http://you.ctrip.com/events/unitedstates100047/4149038.html http://you.ctrip.com/events/unitedstates100047/4149039.html http://you.ctrip.com/events/unitedstates100047/4149030.html http://you.ctrip.com/events/unitedstates100047/4149036.html http://

spark 你要喧宾夺主么?好好干。

嗯嗯,hadoop EcoSystem.

梵蒂冈和更丰富好好干

http://dfgfd77.cn.qiyeku.com/http://hgf76.cn.qiyeku.com/http://ghffg77.cn.qiyeku.com/http://tyyt7.cn.qiyeku.com/http://uyyu8j.cn.qiyeku.com/http://uayu778.cn.qiyeku.com/http://addh7.cn.qiyeku.com/http://qwsaz12.cn.qiyeku.com/http://jijkj7.cn.qiyeku.c

周鸿祎:你能不能像打游戏一样干工作?(老周对工作的看法与常人迥异,了不起)

我知道年轻人爱打游戏,有时候我在开会,也有人在下面玩手机游戏.打游戏不是一件坏事,但是,我认为一个人应该要把握住自己,不要让娱乐过度地毁坏我们的生活和工作.反而要像主动升级打怪那样,对自己的工作和学习,充满激情的进行自我目标认定.自我激励. 我对打游戏并不反感,我也喜欢研究各种游戏,喜欢游戏的各种界面.没有人打游戏先看书,卖什么<21天学会DOTA>,但是大家都会玩,都很喜欢.我觉得游戏就是一个好的产品,让你既能玩又有很好的用户体验.但是,游戏是轻度毒品,如果变成重度毒品,就是我不愿意看到的了

转载自知乎:程序员干到三十就干不动了」的说法是从哪来的?

http://www.zhihu.com/question/28432389 这类谣传很难追根溯源的. 最早大概来自8x-9x年代的第一代程序员. 这时候多半是一种自嘲. 那时改革开放没多久,国内IT业刚刚起步,教材.经典书籍什么的……还是别想太多了.当时很多基础性的东西甚至是靠类似反编译之类手段逆向出来的.从现象反推原因,自然错漏极多(比如谭浩强著名的i=i+i++错误,就属于这类问题),而且琐碎.不成体系. 比如,国内的编译原理教材,忘了是清华出的还是同济的,甚至连为什么需要终结符.终结符是

老鸟职场经-主动性与表现两大职场发展要素

今日无意中整理资料发现如下为学生就业指导的草稿,和伙伴们分享.主动性:1.发现架构服务等的问题隐患,主动提出问题解决方案.  不要光用口说,而是写好专业的可实施的解决方案提交给领导抉择. 2.领导无意中交代的任务.  越是领导无意中交代的,你更要格外重视,快速响应,并完成! 3.领导:发邮件,让研究技术?这是常有的事,要加班熬夜,最短时间完成,不能影响自己的正常工作.哪怕是加班到半夜,第二天也不要迟到.新工作面临被信任问题,因此无论什么任务,都要最快速度完成.让领导信任,可能就是入职后打2-3个

workday2

今天是实习的第二天 看了一天对smarty模板的介绍,进一步加深了对mvc框架的理解,但是对model认识还是非常的模糊的,可能是之前做的一些项目都是比较小的 对比laravel5,smarty模板显得更加简洁,逻辑也很清晰,暂时没发现特别大的缺点(缓存算一个,smarty用的是文件缓存,现在用的都是内存级缓存了,但是没人会用smarty本身自带的缓存的,所以也不能算什么缺点吧) 晚上师兄对我再一次陈述了项目需求,我对现有的系统也重新分析了下,感觉有很大的理解突破,明天也该差不多可以开始写了,是

20140107-小伙子

他说:穿上小伯寄来的大衣的时候,同事边说不错,边说:兄弟,真的不错,不过你还是瘦了点,要是像我这样的话就正好了.然后衣服给到他身上是试了一试,看起来也不错,可是前排的扣子要想扣上有些困难. 这么想起来,他倒是从小时候胖过之后就从没显胖过了.出生的时候快八斤,那纯属从娘胎里带出来的,小伙子长的不错.可是现在,真正的胖还是要自己吃出胖来吧. 那么现在还有机会的,小子现在真的是小伙子了,小伙子加油,好好锻炼,好好干...