航电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<stdio.h>
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<stdio.h>
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<stdio.h>
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 英语演讲比赛成绩表
Name Ref1 Ref2 Ref3 Ref4 Ref5 Average 排名
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.4 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
【提示】选手姓名用二维字符数组,成绩用二维数组存储。排名可采用两种方法:(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<stdio.h>
#include<string.h>
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]<score[i][min])
				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]<score[k][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)

发布了37 篇原创文章 · 获赞 10 · 访问量 727

猜你喜欢

转载自blog.csdn.net/qq_43608850/article/details/104362773