c语言oj系统实验三答案,航电OJ C语言-实验6

1. (20分)

6.2 写一个判断素数的函数,在主函数中输出1~100间的素数信息

输入描述

输出描述

输出1~100之间所有的素数,中间用空格隔开

输入样例

输出样例

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97

用户代码

#include

int main()

{

int i,j,k;

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

{

k=0;

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

{

if(i%j==0)

k++;

}

if(k==2)

printf("%d ",i);

}

return 0;

}

最后保存时间: 2019-11-27 10:56:26

本题得分:20分(1/1)

查看最新评判结果

2. (20分)

6.3 设a,b,c为三个大于零的正整数,计算并输出下列不定方程组解的个数Number以及满足此条件的所有a,b,c之和sum。

题目描述

设a,b,c为三个大于零的正整数,计算并输出下列不定方程组解的个数Number以及满足此条件的所有a,b,c之和sum。

不定方程组为:(1) a+b+c=13 (2)a-c=5,且(a,b,c>0)

请编写函数countValue()实现程序要求并在主函数中输出结果。

输入描述

输出描述

在子函数countValue()中依次输出满足条件的a,b,c,并求Number和sum,在主函数里输出Number和sum

输入样例

输出样例

a=6,b=6,c=1

a=7,b=4,c=2

a=8,b=2,c=3

sum=39,Number=3

用户代码

#include

int main()

{

int a,b,c,sum=0,number=0;

for(c=1;c<=3;c++)

{

b=8-2*c;

a=c+5;

printf("a=%d,b=%d,c=%d\n",a,b,c);

sum+=a+b+c;

number++;

}

printf("sum=%d,Number=%d",sum,number);

return 0;

}

最后保存时间: 2019-11-27 11:09:16

本题得分:20分(1/1)

查看最新评判结果

3. (20分)

6.4用递归调用法求Fibonacci数列前30个数。

题目描述

递推公式如下:F1=1(n=1),F2=1(n=2),Fn=Fn-1+Fn-2(n>2)

输入描述

输出描述

每一个数以%15ld的格式输出,每5个数换一行

输出样例

//忽略第一行的注释

1 1 2 3 5

8 13 21 34 55

89 144 233 377 610

987 1597 2584 4181 6765

10946 17711 28657 46368 75025

121393 196418 317811 514229 832040

用户代码

#include

int main()

{

long n,j=0,k=1,t;

for(n=1;n<=30;n++)

{

if(n%5!=0)

printf("%15ld",k);

else

printf("%15ld\n",k);

t=k;

k+=j;

j=t;

}

return 0;

}

最后保存时间: 2019-11-27 11:22:28

本题得分:20分(1/1)

查看最新评判结果

4. (40分)

参加我校大学生英语演讲比赛决赛阶段的选手有n位,决赛中共有m位评委,假设所有选手的成绩存放在一个二维数组中,根据评分规则计算每位选手的平均分,并按成绩逆序打印。(评分的规则是:去掉一个最高分,去掉一个最低分,然后对剩下评委的评分求和平均即为该选手得分)请编程实现(输出形式表6.1)(假设n=5, m=5)。本程序要求必须编写如下2个函数:

题目描述

参加我校大学生英语演讲比赛决赛阶段的选手有n位,决赛中共有m位评委,假设所有选手的成绩存放在一个二维数组中,根据评分规则计算每位选手的平均分,并按成绩逆序打印。(评分的规则是:去掉一个最高分,去掉一个最低分,然后对剩下评委的评分求和平均即为该选手得分)请编程实现(输出形式表6.1)(假设n=5, m=5)。本程序要求必须编写如下2个函数:a)求平均分的函数;

b)排序函数。(排序时注意分数和姓名的对应关系,姓名可以使用拼音)

表6.1 英语演讲比赛成绩表

NameRef1Ref2Ref3Ref4Ref5Average排名

ChenJun9.38.59.29.29.59.231

ZhanRen9.08.98.69.27.88.832

HuKai8.68.48.89.58.08.633

XieQian9.18.38.58.19.08.604

DuMu7.88.29.78.09.48.535

【提示】选手姓名用二维字符数组,成绩用二维数组存储。排名可采用两种方法:(1)另用一个数组存储选手的名次,根据名次输出成绩。(2)实现数据排序,注意按均分排序时,姓名要对应(即姓名也要对应交换)。

输入描述

依次输入5位选手的姓名和成绩,空格隔开

输出描述

按照平均成绩从高到低排名并输出各个选手的姓名成绩平均成绩以及排名

输出格式:%10s%8.1f%8.1f%8.1f%8.1f%8.1f%8.2f%8d\n

输入样例

ChenJun 9.3 8.5 9.2 9.2 9.5

ZhanRen 9.0 8.9 8.6 9.2 7.8

HuKai 8.6 8.5 8.8 9.5 8.0

XieQian 9.1 8.3 8.5 8.1 9.0

DuMu 7.8 8.2 9.7 8.0 9.4

输出样例

//忽略该行注释

ChenJun 9.3 8.5 9.2 9.2 9.5 9.23 1

ZhanRen 9.0 8.9 8.6 9.2 7.8 8.83 2

HuKai 8.6 8.5 8.8 9.5 8.0 8.63 3

XieQian 9.1 8.3 8.5 8.1 9.0 8.60 4

DuMu 7.8 8.2 9.7 8.0 9.4 8.53 5

用户代码

#include

#include

int main()

{

int i,j,max,min;

double score[5][6]={0},s=0;

char name[5][40]={""};

void aver(double score[][6]);

void rank(char name[][40],double score[][6]);

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

{

scanf("%s",name[i]);

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

{

scanf("%lf",&score[i][j]);

}

}

aver(score);

rank(name,score);

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

{

printf("%10s",name[i]);

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

{

if(j!=5)

printf("%8.1f",score[i][j]);

else

printf("%8.2f%8d\n",score[i][j],i+1);

}

}

return 0;

}

void aver(double score[][6])

{

int i,j,max,min;

double s;

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

{

s=0;

max=0;

min=0;

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

{

if(score[i][j]>score[i][max])

max=j;

if(score[i][j]

min=j;

}

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

{

if(j!=max&&j!=min)

s+=score[i][j];

}

score[i][5]=s/3;

}

}

void rank(char name[][40],double score[][6])

{

int i,j,k,pos;

double temp;

char t[40];

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

{

pos=i;

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

{

if(score[pos][5]

pos=k;

}

if(pos!=i)

{

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

{

temp=score[i][j];

score[i][j]=score[pos][j];

score[pos][j]=temp;

}

strcpy(t,name[i]);

strcpy(name[i],name[pos]);

strcpy(name[pos],t);

}

}

}

最后保存时间: 2019-11-27 18:10:52

本题得分:40分(2/2)

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值