二〇一五cup实习二二十5日期的拍卖,可填在百位、十二位、个位的数字都是一 、二 、叁 、4

高级语言课程设计报告

【程序1】

【程序1】
题材:有① 、贰 、③ 、多个数字,能构成多少个大相径庭且无重复数字的肆位数?都以有点?
1.先后分析:可填在百位、拾四个人、个位的数字都以一 、贰 、三 、4。组成全数的排列后再去
      掉不满意条件的排列。
2.程序源代码:

见习标题

标题:有① 、二 、叁 、6个数字,能组成多少个大有径庭且无重复数字的叁个人数?都以稍稍?

复制代码 代码如下:

其叁遍告知: 日期的处理

1.先后分析:可填在百位、10人、个位的数字都以① 、二 、叁 、4。组成全数的排列后再去掉不知足条件的排列。

main()
{
int i,j,k;
printf(“\n”);
for(i=1;i<5;i++)    /*以下为三重循环*/
 for(j=1;j<5;j++) 
  for (k=1;k<5;k++)
   {
    if (i!=k&&i!=j&&j!=k)    /*确认保障i、j、k多少人相差极大*/
    printf(“%d,%d,%d\n”,i,j,k);
    }
}

l 阅读群众文化艺术件《程序设计导引及在线实践》5章日期和岁月处理之5.1-5.3。5.4选看。

2.程序源代码:

【程序2】
题材:公司发放的奖金遵照利润提成。利润(I)低于或等于10万元时,奖金可提一成;利润高
   于10万元,低于20万元时,低于10万元的片段按1/10提成,高于10万元的片段,可可提
   成7.5%;20万到40万时期时,高于20万元的部分,可提成5%;40万到60万之间时超越
   40万元的一部分,可提成3%;60万到100万以内时,高于60万元的一对,可提成1.5%,高于
   100万元时,当先100万元的有的按1%提成,从键盘输入当月利润I,求应发放奖金总额?
1.先后分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。      
2.程序源代码:

l 实现ACM俱乐部作业:二〇一五cup实习十日期的拍卖

main()

复制代码 代码如下:

l 描述您的算法,注释你的次第。

{

main()
{
long int i;
int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
scanf(“%ld”,&i);
bonus1=100000*0.1;bonus2=bonus1+100000*0.75;
bonus4=bonus2+200000*0.5;
bonus6=bonus4+200000*0.3;
bonus10=bonus6+400000*0.15;
 if(i<=100000)
  bonus=i*0.1;
 else if(i<=200000)
     bonus=bonus1+(i-100000)*0.075;
    else if(i<=400000)
        bonus=bonus2+(i-200000)*0.05;
       else if(i<=600000)
           bonus=bonus4+(i-400000)*0.03;
          else if(i<=1000000)
              bonus=bonus6+(i-600000)*0.015;
             else
              bonus=bonus10+(i-1000000)*0.01;
printf(“bonus=%d”,bonus);
}

l 注意勿抄袭:全系统活动判定抄袭,一旦抄袭,0分。

int i,j,k;

【程序3】
题材:3个平头,它助长100后是2个全然平方数,再添加168又是二个截然平方数,请问该数是有个别?
1.先后分析:在10万以内判断,先将该数加上100后再开药方,再将该数加上268后再开药方,假使开药方后
      的结果满足如下条件,便是结果。请看具体分析:
2.程序源代码:

壹 、实习目标:

printf(“\n”);

复制代码 代码如下:

二 、针对你的每一道难题:

for(i=1;i<5;i++)    /*以下为三重循环*/

#include “math.h”
main()
{
long int i,x,y,z;
for (i=1;i<100000;i++)
 { x=sqrt(i+100);   /*x为抬高100后开药方后的结果*/
  y=sqrt(i+268);   /*y为再加上168后开药方后的结果*/
   if(x*x==i+100&&y*y==i+268)/*一经2个数的平方根的平方等于该数,那表明此数是一心平方数*/
    printf(“\n%ld\n”,i);
  }
}

1.算法描述。

 for(j=1;j<5;j++) 

【程序4】
难题:输入某年某月某日,判断这一天是这一年的第几天?
1.程序分析:以八月2114日为例,应该先把前多个月的加起来,然后再增进5天即二零一九年的第几天,特殊
      景况,闰年且输入月份大于3时需考虑多加一天。
2.程序源代码:

落草年份的日期分为两种:11月二号之后的;一月6日之后一月二号从前的;1月六日从前的。分别用分歧的措施开始展览测算,但都以先算到2016年同一天的造化再举行加减。

  for (k=1;k<5;k++)

复制代码 代码如下:

2.你的代码及注释。

   {

main()
{
int day,month,year,sum,leap;
printf(“\nplease input year,month,day\n”);
scanf(“%d,%d,%d”,&year,&month,&day);
switch(month)/*先总计某月在此之前月份的总天数*/
{
 case 1:sum=0;break;
 case 2:sum=31;break;
 case 3:sum=59;break;
 case 4:sum=90;break;
 case 5:sum=120;break;
 case 6:sum=151;break;
 case 7:sum=181;break;
 case 8:sum=212;break;
 case 9:sum=243;break;
 case 10:sum=273;break;
 case 11:sum=304;break;
 case 12:sum=334;break;
 defaultrintf(“data error”);break;
}
sum=sum+day;  /*再添加某天的命局*/
 if(year%400==0||(year%4==0&&year%100!=0))/*认清是还是不是闰年*/
  leap=1;
 else
  leap=0;
if(leap==1&&month>2)/*倘假诺闰年伏月份高于2,总天数应该加一天*/
sum++;
printf(“It is the %dth day.”,sum); }

端午节:

    if (i!=k&&i!=j&&j!=k)    /*确定保证i、j、k二人区别*/

【程序5】
问题:输入三个整数x,y,z,请把那八个数由小到大出口。
1.先后分析:大家想办法把最小的数放到x上,先将x与y进行相比较,要是x>y则将x与y的值进行交流,
      然后再用x与z进行比较,假诺x>z则将x与z的值实行置换,那样能使x最小。
2.程序源代码:

#include <stdio.h>

    printf(“%d,%d,%d\n”,i,j,k);

复制代码 代码如下:

int type(int );

   }

main()
{
int x,y,z,t;
scanf(“%d%d%d”,&x,&y,&z);
if (x>y)
/*交换x,y的值*/
if(x>z)
/*交换x,z的值*/
if(y>z)
/*交换z,y的值*/
printf(“small to big: %d %d %d\n”,x,y,z);
}

int year[2]={365,366};                          //闰平年运气的分别

}

【程序6】
题目:用*号出口字母C的美术。
1.先后分析:可先用<|>*<|>号在纸上写出字母C,再分行输出。
2.程序源代码:

int
month[2][12]={31,28,31,30,31,30,31,31,30,31,30,31,31,29,31,30,31,30,31,31,30,31,30,31};
//闰平年月份天数的分别

==============================================================

复制代码 代码如下:

int main()

【程序2】

#include “stdio.h”
main()
{
printf(“Hello C-world!\n”);
printf(” ****\n”);
printf(” *\n”);
printf(” * \n”);
printf(” ****\n”);
}

{

难题:公司发放的奖金依据利润提成。利润(I)低于或等于10万元时,奖金可提一成;利润大于10万元,低于20万元时,低于10万元的有的按百分之十提成,高于10万元的局地,可可提成7.5%;20万到40万里头时,高于20万元的片段,可提成5%;40万到60万里面时超过40万元的一部分,可提成3%;60万到100万以内时,高于60万元的一些,可提成1.5%,高于100万元时,当先100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总额?

【程序7】
题目:输出特殊图案,请在c环境中运维,看一看,Very Beautiful!
1.顺序分析:字符共有2六十一个。不一样字符,图形差别。      
2.程序源代码:

int days=0,week;

1.先后分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。      

复制代码 代码如下:

int i = 0, j = 0,a,b,c;

2.程序源代码:

#include “stdio.h”
main()
{
char a=176,b=219;
printf(“%c%c%c%c%c\n”,b,a,a,a,b);
printf(“%c%c%c%c%c\n”,a,b,a,b,a);
printf(“%c%c%c%c%c\n”,a,a,b,a,a);
printf(“%c%c%c%c%c\n”,a,b,a,b,a);
printf(“%c%c%c%c%c\n”,b,a,a,a,b); }

scanf(“%d-%d-%d”,&a,&b,&c);

main()

【程序8】
题目:输出9*9口诀。
1.先后分析:分行与列考虑,共9行9列,i控制行,j控制列。
2.程序源代码:

if(b>6||(b==6&&c>=2)) //第一种:6.2~12.31

{

复制代码 代码如下:

{

long int i;

#include “stdio.h”
main()
{
 int i,j,result;
 printf(“\n”);
 for (i=1;i<10;i++)
  { for(j=1;j<10;j++)
    {
     result=i*j;
     printf(“%d*%d=%-3d”,i,j,result);/*-3d表示左对齐,占三个人*/
     }
   printf(“\n”);/*每一行后换行*/
   }
}

for(i=a;i<2014;i++)

int
bonus1,bonus2,bonus4,bonus6,bonus10,bonus;

【程序9】
题材:须要输出国际象棋棋盘。
1.先后分析:用i控制行,j来控制列,根据i+j的和的生成来控制输出黑方格,如故白方格。
2.程序源代码:

days+=365+type(i+1); //算出到2016年这一天的流年

scanf(“%ld”,&i);

复制代码 代码如下:

for(i=6;i<b;i++)

bonus1=100000*0.1;bonus2=bonus1+100000*0.75;

#include “stdio.h”
main()
{
int i,j;
for(i=0;i<8;i++)
 {
  for(j=0;j<8;j++)
   if((i+j)%2==0)
    printf(“%c%c”,219,219);
   else
    printf(” “);
   printf(“\n”);
  }
}

{days-=month[1][i];} //减去多出去的整月份天数

bonus4=bonus2+200000*0.5;

【程序10】
标题:打字与印刷楼梯,同时在阶梯上方打字与印刷五个笑脸。
1.先后分析:用i控制行,j来控制列,j按照i的变化来控制输出黑方格的个数。
2.程序源代码:

days=days+3-c;                           //减去多出来的日数

bonus6=bonus4+200000*0.3;

复制代码 代码如下:

}

bonus10=bonus6+400000*0.15;

#include “stdio.h”
main()
{
int i,j;
printf(“\n”);/*输出多少个笑脸*/
for(i=1;i<11;i++)
 {
 for(j=1;j<=i;j++)
   printf(“%c%c”,219,219);
 printf(“\n”);
  }
}

else

 if(i<=100000)

您只怕感兴趣的篇章:

{

  bonus=i*0.1;

if(b>=3) //第二种:3.1~6.1

 else if(i<=200000)

{

     bonus=bonus1+(i-100000)*0.075;

for(i=a;i<2014;i++)

    else if(i<=400000)

days+=365+type(i+1); //与上同理

        bonus=bonus2+(i-200000)*0.05;

for(i=b+1;i<6;i++)

       else if(i<=600000)

j+=month[0][i];

           bonus=bonus4+(i-400000)*0.03;

j=j+month[0][b]-c+2;

          else if(i<=1000000)

days-=j; //加上月份的气数减去日的气数

              bonus=bonus6+(i-600000)*0.015;

}

             else

else //第三种:1.1~2.28(29)

              bonus=bonus10+(i-1000000)*0.01;

{

printf(“bonus=%d”,bonus);

for(i=a;i<2014;i++)

}

days+=365+type(i); //与上同理

 

for(i=b+1;i<6;i++)

==============================================================

j+=month[0][i];

【程序3】

j=j+month[0][b]-c+2; //与第二种同理,在此处分别了闰平年

题材:一个平头,它助长100后是贰个通通平方数,再加上168又是二个通通平方数,请问该数是不怎么?

days-=j;

1.顺序分析:在10万之内判断,先将该数加上100后再开药方,再将该数加上268后再开药方,借使开药方后的结果满意如下条件,便是结果。请看具体分析:

}

2.程序源代码:

}

#include “math.h”

printf(“%d\n”,days);

main()

printf(“%d\n”,7-(days-2)%7);

{

}

long int i,x,y,z;

int type(int m) //区分闰平年的函数

for (i=1;i<100000;i++)

{

 { x=sqrt(i+100);   /*x为抬高100后开药方后的结果*/

if(m % 4 != 0 || (m % 100 == 0 && m % 400 != 0))

  y=sqrt(i+268);   /*y为再添加168后开药方后的结果*/

return 0;

   if(x*x==i+100&&y*y==i+268)/*假如一个数的平方根的平方等于该数,那表明此数是一点一滴平方数*/

else return 1;

    printf(“\n%ld\n”,i);

}

 }

 图片 1

}

图片 2

==============================================================

图片 3

【程序4】

 

难题:输入某年某月某日,判断这一天是这一年的第几天?

高斯日记:(道理跟上边的一点一滴相反)

1.先后分析:以1月二十五日为例,应该先把前八个月的加起来,然后再添加5天即今年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。

#include<stdio.h>

2.程序源代码:

int main()

main()

{

{

    int a=8113,b,c,d,z=0,i=0,t,u,f;

int day,month,year,sum,leap;

    int month1[12]={31,29,31,30,31,30,31,31,30,31,30,31};

printf(“\nplease input
year,month,day\n”);

    int month2[12]={31,28,31,30,31,30,31,31,30,31,30,31};

scanf(“%d,%d,%d”,&year,&month,&day);

    f=8113-31-30-31-31-30-31-30-31;

switch(month)/*先计算某月从前月份的总天数*/

    b=f/365;

{

    t=b/4;

 case 1:sum=0;break;

    u=b%4;

 case 2:sum=31;break;

    if(u==3)

 case 3:sum=59;break;

    f=f-1-t-b*365;

 case 4:sum=90;break;

    else

 case 5:sum=120;break;

    f=f-t-b*365;

 case 6:sum=151;break;

    if(u==2)

 case 7:sum=181;break;

    {

 case 8:sum=212;break;

   

 case 9:sum=243;break;

while(z<f){

 case 10:sum=273;break;

    z=z+month1[i];

 case 11:sum=304;break;

    i=i+1;

 case 12:sum=334;break;

    };

 default:printf(“data error”);break;

    printf(“%d-0%d-%d”,1778+b,i,month1[i-1]-z+f-1);

}

    }

sum=sum+day;  /*再添加某天的气数*/

    if(u!=2)

 if(year%400==0||(year%4==0&&year%100!=0))/*判定是否闰年*/

    {

  leap=1;

   

 else

while(z<f){

  leap=0;

    z=z+month2[i];

if(leap==1&&month>2)/*假若是闰年林钟份过量2,总天数应该加一天*/

    i=i+1;

sum++;

    };

printf(“It is the %dth day.”,sum);}

    printf(“%d-0%d-%d”,1778+b,i,month2[i-1]-z+f-1);

==============================================================

    }   

【程序5】

return 0;

题材:输入多个整数x,y,z,请把那三个数由小到大出口。

}

1.程序分析:我们想方法把最小的数放到x上,先将x与y举行相比,要是x>y则将x与y的值举办置换,      然后再用x与z进行比较,假设x>z则将x与z的值进行置换,那样能使x最小。

 图片 4

2.程序源代码:

 

main()

  1. 规划及调节和测试进度蒙受的题材及化解方案。

{

正阳节:本认为能够直接套用上的代码,没悟出跟书上是截然相反的,妄想能够挪用一点,不过最后依旧都删了,照旧友好编出来的。在首先片段的日子出了难题,经过连碰带猜终于把代码改对了,然后就是星期几那,竟然输出了0,那让本身非常狼狈,可是都很自在的解决了,基本没什么难题。

int x,y,z,t;

高斯日记:果真套上了代码,原来那是填空题,后来考订之后就没看,过了几天才又做完的,跟天中节的正相反,没啥了。

scanf(“%d%d%d”,&x,&y,&z);

  1. 心体面会和本身对程序的评介。

if (x>y)

端阳节:感觉这些代码供给扭转思考,那样就能更有益于的计量,正着算是很难的,可是也有另一种方法,跟自家那种近乎,然则是用一月二号算罢了,程序并简单,用心短期就能编出来,尽管自个儿盗用了书上代码的模板。自个儿的先后一般,不理想,也很一般。Over

{t=x;x=y;y=t;} /*交换x,y的值*/

高斯日记:同上。

if(x>z)

{t=z;z=x;x=t;}/*交换x,z的值*/

if(y>z)

{t=y;y=z;z=t;}/*交换z,y的值*/

printf(“small to big: %d %d
%d\n”,x,y,z);

}

==============================================================

【程序6】

题目:用*号出口字母C的图腾。

1.主次分析:可先用’*’号在纸上写出字母C,再分行输出。

2.程序源代码:

#include “stdio.h”

main()

{

printf(“Hello C-world!\n”);

printf(” ****\n”);

printf(” *\n”);

printf(” * \n”);

printf(” ****\n”);

}

==============================================================

【程序7】

难题:输出特殊图案,请在c环境中运营,看一看,Very Beautiful!

1.程序分析:字符共有2五贰十三个。不相同字符,图形不雷同。      

2.程序源代码:

#include “stdio.h”

main()

{

char a=176,b=219;

printf(“%c%c%c%c%c\n”,b,a,a,a,b);

printf(“%c%c%c%c%c\n”,a,b,a,b,a);

printf(“%c%c%c%c%c\n”,a,a,b,a,a);

printf(“%c%c%c%c%c\n”,a,b,a,b,a);

printf(“%c%c%c%c%c\n”,b,a,a,a,b);}

==============================================================

【程序8】

题目:输出9*9口诀。

1.顺序分析:分行与列考虑,共9行9列,i控制行,j控制列。

2.程序源代码:

#include “stdio.h”

main()

{

 int i,j,result;

 printf(“\n”);

 for (i=1;i<10;i++)

  { for(j=1;j<10;j++)

    {

     result=i*j;

     printf(“%d*%d=%-3d”,i,j,result);/*-3d表示左对齐,占多少人*/

    }

   printf(“\n”);/*每一行后换行*/

  }

}

==============================================================

【程序9】

题材:供给输出国际象棋棋盘。

1.程序分析:用i控制行,j来控制列,依据i+j的和的更动来控制输出黑方格,还是白方格。

2.程序源代码:

#include “stdio.h”

main()

{

int i,j;

for(i=0;i<8;i++)

 {

  for(j=0;j<8;j++)

   if((i+j)%2==0)

    printf(“%c%c”,219,219);

   else

    printf(” “);

   printf(“\n”);

 }

}

==============================================================

【程序10】

题材:打字与印刷楼梯,同时在阶梯上方打字与印刷八个笑脸。

1.顺序分析:用i控制行,j来控制列,j依据i的变型来控制输出黑方格的个数。

2.程序源代码:

#include “stdio.h”

main()

{

int i,j;

printf(“\1\1\n”);/*输出三个笑脸*/

for(i=1;i<11;i++)

 {

 for(j=1;j<=i;j++)

 
 printf(“%c%c”,219,219);

 printf(“\n”);

 }

}

【程序11】

题材:古典难点:有一对兔子,从出生后第四个月起各类月都生一对兔子,小兔子长到第3个月后种种月又生一对兔子,假诺兔子都不死,问每一个月的兔子总数为多少?

1.顺序分析: 兔子的原理为数列1,1,2,3,5,8,13,21….

2.程序源代码:

main()

{

long f1,f2;

int i;

f1=f2=1;

for(i=1;i<=20;i++)

 { printf(“%12ld %12ld”,f1,f2);

   if(i%2==0) printf(“\n”);/*控制输出,每行八个*/

   f1=f1+f2; /*前4个月加起来赋值给第九个月*/

   f2=f1+f2; /*前五个月加起来赋值给第5个月*/

 }

}

相关文章