C语言作业.docx

上传人:b****4 文档编号:3083259 上传时间:2022-11-17 格式:DOCX 页数:18 大小:77.92KB
下载 相关 举报
C语言作业.docx_第1页
第1页 / 共18页
C语言作业.docx_第2页
第2页 / 共18页
C语言作业.docx_第3页
第3页 / 共18页
C语言作业.docx_第4页
第4页 / 共18页
C语言作业.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

C语言作业.docx

《C语言作业.docx》由会员分享,可在线阅读,更多相关《C语言作业.docx(18页珍藏版)》请在冰豆网上搜索。

C语言作业.docx

C语言作业

撞球

#include

#include

#include

intmain()

{

doublelength,wide,x0,y0,x1,y1;

inti;

chartowards[1500];

while

(1)

{

memset(towards,0,sizeof(towards));

if(scanf("%lf%lf",&wide,&length)==EOF)

break;

scanf("%lf%lf",&x0,&y0);

scanf("%lf%lf",&x1,&y1);

scanf("%s",towards);

for(i=0;i

{

if(towards[i]=='F')

y0=-y0;

if(towards[i]=='B')

y0=2*length-y0;

if(towards[i]=='L')

x0=-x0;

if(towards[i]=='R')

x0=2*wide-x0;

}

printf("%.4lf\n",sqrt((x0-x1)*(x0-x1)+(y0-y1)*(y0-y1)));

}

return(0);

}

20.整数问题

成绩:

0/折扣:

0.8

请求输出满足以下条件的n位正整数的个数:

要求该n位整数的从高位开始前1位可以被1整除,该n位整数前2位可以被2*2整除,该整数前3位可以被3*3整除,该整数前4位可以被4*4整除……。

即该整数前k位都可被k平方整除。

例如:

n=1,则符合条件的1位正整数为1~9,输出答案9。

n=2,符合条件的正整数为:

12,16,20,24,28,32,36,40,44,48,52,56,60,64,68,72,76,80,84,88,92,96,则输出答案22。

当n=4时,2432就是一个符合题意的整数。

第一位2可以被1整除;前2为24可以被4整除;前3位243可以被9整除;整个4位2432可以被16整除。

输入:

  n(0<=n<9)

输出:

   符合该条件的n位正整数的数量

(本题目为软件学院2007年保研学生初试上机试题。

本题可以不用数组)

 

测试输入

期待的输出

时间限制

内存限制

额外进程

测试用例1

以文本方式显示

1.1↵

以文本方式显示

1.9↵

无限制

64M

0

测试用例2

以文本方式显示

1.2↵

以文本方式显示

1.22↵

无限制

64M

0

测试用例6

以文本方式显示

1.8↵

以文本方式显示

1.0↵

无限制

64M

0

思路一:

做9个数组,第一个数组为1-9,从n=2开始,将上一组的每个数乘10加0-9,验算得到的数是否是n^2的整数倍,是则存入当前数组。

完成后第n个数组的长度即是所求。

思路二:

直接数完9组数据,做成映射表。

1,2,3,4,5,6,7,8,9共9个

12,16,20,24,28,32,36,40,44,48,52,56,60,64,68,72,76,80,84,88,92共22个

126,162,207,243,288,324,360,369,405,441,486,522,567,603,648,684,720,729,765,801,846,882,927,963共24个

1264,2432,2880,3248,3600,3696,4416,4864,6032,6480,6848,7200,7296,8016,8464,9632,共16个

24325,28800,36000,60325,64800,72000,96325,共7个

243252,288000,360000,603252,648000,720000,963252,共7个

6480005,共1个

n=8,9时个数为0

则建立数组a[9]={9,22,24,16,7,7,1,0,0},输入n则直接输出数组的第n个值即可

注意,如果数组计数从0开始,则输入n要输出a[n-1]

#include

voidmain()

{intn;

n<9;

scanf("%d",&n);

{if(n==1)

printf("9\n");

}

{if(n==2)

printf("22\n");

}

{if(n==3)

printf("24\n");

}

{if(n==4)

printf("16\n");

}

{if((n==5)||(n==6))

printf("7\n");

}

{if(n==7)

printf("1\n");

}

{if((n==8)||(n==0))

printf("0\n");

}

}

H5铺地板(选作)

成绩:

5/折扣:

0.8

背景:

   你是一名室内装潢工程队的配料员。

你的伙伴们喜欢采用“之”字型的方式铺大理石地砖,图案如下:

1

2

6

7

15

3

5

8

14

16

4

9

13

17

22

10

12

18

21

23

11

19

20

24

25

学了C语言以后,你决定编写一个程序,帮助你的同伴生成这样的图形。

输入:

    方阵N的大小。

输出

方阵。

 

测试输入

期待的输出

时间限制

内存限制

额外进程

测试用例1

以文本方式显示

1.5↵

以文本方式显示

1. 1  2  6  7 15↵

2. 3  5  8 14 16↵

3. 4  9 13 17 22↵

4.10 12 18 21 23↵

5.11 19 20 24 25↵

1秒

64M

0

测试用例2

以文本方式显示

1.3↵

以文本方式显示

1. 1  2  6↵

2. 3  5  7↵

3. 4  8  9↵

1秒

64M

0

测试用例5

以文本方式显示

1.9↵

以文本方式显示

1. 1  2  6  7 15 16 28 29 45↵

2. 3  5  8 14 17 27 30 44 46↵

3. 4  9 13 18 26 31 43 47 60↵

4.10 12 19 25 32 42 48 59 61↵

5.11 20 24 33 41 49 58 62 71↵

6.21 23 34 40 50 57 63 70 72↵

7.22 35 39 51 56 64 69 73 78↵

8.36 38 52 55 65 68 74 77 79↵

9.37 53 54 66 67 75 76 80 81↵

1秒

64M

0

#defineN50

#include

main()

{

intc,d,b,h,i,j,n,a[N][N];

scanf("%d",&b);

if(b==1)printf("%d\n",b);

else{

for(i=0;i

for(j=0;j

{if(i+j

{d=((i+j)*(j+i+1))/2;

if((i+j)%2==0)a[i][j]=d+j+1;

elsea[i][j]=d+1+i;}

if(i+j>=b)

{c=0;h=i+j-b;

for(n=b-1;h>0;n--,h--)

c=c+n;d=(b+1)*b/2+c;

if((i+j)%2==0)a[i][j]=d+b-i;

elsea[i][j]=d+b-j;}

}

for(i=0;i

{for(j=0;j

if(a[i][j]<=9)printf("%d",a[i][j]);

elseprintf("%d",a[i][j]);

if(a[i][j]<=9)printf("%d\n",a[i][j]);

elseprintf("%d\n",a[i][j]);}

}

}

H8邮票组合(选作)

成绩:

5/折扣:

0.9

背景:

       我们寄信都要贴邮票,在邮局有一些小面值的邮票,通过这些小面值邮票中的一张或几张的组合,可以满足不同邮件的不同的邮资。

       现在,邮局有4种不同面值的邮票。

在每个信封上最多能贴5张邮票,面值可相同,可不同。

输入:

       四种邮票的面值。

输出:

      用这四种面值组成的邮资最大的从1开始的一个连续的区间。

说明:

       如结果为10,则表明使用4张邮票可组合出1、2、3、4、5、6、7、8、9、10这些邮资。

名词解释:

       邮资:

就是你寄东西需要花多少钱。

       邮票面额:

是由国家发行的具有固定价格的花纸片,被称为邮票。

如果你寄东西,邮局称了重量,告诉你要240分。

这样你就要贴邮票了。

如果现在邮局的邮票有面值为80分、50分、20分和10分的四种,你就可以采用不同的组合得到240的邮资,例如:

采用3张80分的可以凑出240分;或者24张10分的凑起来240分也可以。

显然不同邮票的组合都可以得到同样一种邮资。

 

测试输入

期待的输出

时间限制

内存限制

额外进程

测试用例2

以文本方式显示

1.1 3 7 12↵

以文本方式显示

1.The max is 46.↵

1秒

64M

0

#include

intneng(inta[],intmax)

{

inti,j,k,m,n;

intsum;

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

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

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

for(m=0;m<5;m++)

for(n=0;n<5;n++)

{

sum=a[i]+a[j]+a[k]+a[m]+a[n];

if(sum==max)return1;

}

return0;

}

voidmain()

{

inta[5],i;

intmax=0;

a[4]=0;

scanf("%d%d%d%d",&a[0],&a[1],&a[2],&a[3]);

while

(1)

{

if(neng(a,max))

{

max++;

}

elsebreak;

}

printf("Themaxis%d.\n",max-1);

}

H6晕(选作)

成绩:

5/折扣:

0.8

看着这样的“回”形图案你晕吗?

让我们不用数组,来做出它。

输入:

   n。

正方形的边长

输出:

   边长为n的数字回形方阵。

 

测试输入

期待的输出

时间限制

内存限制

额外进程

测试用例1

以文本方式显示

1.3↵

以文本方式显示

1.  1  2  3↵

2.  8  9  4↵

3.  7  6  5↵

无限制

64M

0

测试用例2

以文本方式显示

1.4↵

以文本方式显示

1.  1  2 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1