首页 > 其他分享 >实验6 函数

实验6 函数

时间:2024-10-11 23:52:03浏览次数:8  
标签:输出 函数 int sum 样例 实验 include 输入

1、素数之和

【问题描述】编写函数判断一个数是否为素数,在主函数中输入整数n,计算并输出1~n间的所有素数之和,若n<2,则输出error!   ( n<=10000 )

【输入形式】整数n

【输出形式】1~n间的所有素数之和

【样例输入】100
【样例输出】1060

【样例输入】-1
【样例输出】error!

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>

int sushu(int n)
{
	int i,j,a=1,sum=0;
	for(i=2;i<=n;i++)
	{
		a=1;
		for(j=2;j<=sqrt((double)i);j++)
		{	
			if(i%j==0)
			{
				a=0;
			}
		}
		if(a==1)
		{
			sum+=i;
		}
	}
	return sum;
}

int main()
{
	int n,sum;
	scanf("%d",&n);
	if(n<2)
	{
		printf("error!\n");
	}
	else
	{
		sum=sushu(n);
		printf("%d\n",sum);
	}
	return 0;
}

2、计算并输出不定方程组解的个数以及满足此条件的所有素数之和

【问题描述】:

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

 不定方程组为:

请编写函数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

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int sum,Number;
void countValue()
{
	int a,b,c,x=0;
	for(a=1;a<13;a++)
	{
		b=18-2*a;
		c=a-5;
		if(b<=0||c<=0)
		{
			continue;
		}
		else
		{
			x++;
			printf("a=%d,b=%d,c=%d\n",a,b,c);
		}
	}
	sum=a*3;
	Number=x;
}

int main()
{
	countValue();
	printf("sum=%d,Number=%d\n",sum,Number);
	return 0;
}

3、用递归调用法求Fibonacci数列前n个数

【问题描述】递推公式如下:F1=1(n=1),F2=1(n=2),Fn=Fn-1+Fn-2(n>2)

【输入形式】n(n<45)

【输出形式】n<1,输出error!,否则输出斐波那契数列的前n项,每一个数以%15ld的格式输出,每行5个数

【样例输入】30
【样例输出】

第二组测试用例

【样例输入】-1
【样例输出】error!

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>

int fib(int n,int f1,int f2)
{
	if(n==0)
	{
		return f1;
	}
	else
	{
		return fib(n-1,f2,f1+f2);
	}
}
int main()
{
	int n,i;
	long int sum;
	scanf("%d",&n);
	if(n<1)
	{
		printf("error!\n");
	}
	else
	{
		for(i=1;i<=n;i++)
		{
			sum=fib(i,0,1);
			printf("%15ld",sum);
			if(i%5==0)
			{
				printf("\n");
			}
		}
	}
	return 0;
}

4、大学生英语演讲比赛决赛评分处理

【问题描述】

  参加我校大学生英语演讲比赛决赛阶段的选手有n位,决赛中共有m位评委,假设所有选手的成绩存放在一个二维数组中,根据评分规则计算每位选手的平均分,并按成绩逆序打印。(假设n=5, m=5)

  评分的规则:去掉一个最高分,去掉一个最低分,然后对剩下评委的评分求和平均即为该选手得分。

  本程序要求必须编写如下2个函数:

    a)求平均分的函数;

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

【提示】选手姓名用二维字符数组,成绩用二维数组存储。排名可采用两种方法:

    (1)另用一个数组存储选手的名次,根据名次输出成绩。

    (2)实现数据排序,注意按均分排序时,姓名要对应(即姓名也要对应交换)。


【输入形式】依次输入n位选手的姓名和成绩,空格隔开

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

输出格式:姓名:%10s,成绩:%6.1f,平均成绩:%6.2f,排名:%5d


【样例输入】

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

【样例输出】

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

void avg(double a[5][5],double b[5])
{
	int i,j;
	double max,min,sum=0;
	for(i=0;i<5;i++)
	{
		max=a[i][0],min=a[i][0],sum=0;
		for(j=0;j<5;j++)
		{
			if(max<a[i][j])
			{
				max=a[i][j];
			}
			if(min>a[i][j])
			{
				min=a[i][j];
			}
			sum+=a[i][j];
		}
		sum=sum-max-min;
		b[i]=sum;
	}
}

void px(char name[5][10],double a[5][5],double b[5])
{
	int i,j,k,s;
	double t,n;
	char x;
	for(i=0;i<4;i++)
	{
		for(j=0;j<4;j++)
		{
			if(b[j]<b[j+1])
			{
				n=b[j];
				b[j]=b[j+1];
				b[j+1]=n;
				for(k=0;k<5;k++)
				{
					t=a[j][k];
					a[j][k]=a[j+1][k];
					a[j+1][k]=t;
				}
				for(s=0;s<10;s++)
				{
					x=name[j][s];
					name[j][s]=name[j+1][s];
					name[j+1][s]=x;
				}
			}
		}
	}

}

int main()
{
	int i,j;
	char name[5][10];
	double a[5][5],b[5];
	for(i=0;i<5;i++)
	{
		scanf("%s",&name[i][0]);
		for(j=0;j<5;j++)
		{
			scanf("%lf",&a[i][j]);
		}
	}
	avg(a,b);
	px(name,a,b);
	for(i=0;i<5;i++)
	{
		printf("%10s",name[i]);
		for(j=0;j<6;j++)
		{
			if(j!=5)
			{
				printf("%6.1f",a[i][j]);
			}
			else
			{
				printf("%6.2f%5d",b[i]/3.0,i+1);
			}
		}
		printf("\n");
	}
	return 0;
}

标签:输出,函数,int,sum,样例,实验,include,输入
From: https://blog.csdn.net/2303_82182099/article/details/142771485

相关文章

  • 实验2
    实验2任务1源代码#include<stdio.h>#include<stdlib.h>#include<time.h>#defineN5#defineN1397#defineN2476#defineN321intmain(){intcnt;intrandom_major,random_no;srand(time(NULL));cnt=0;while(......
  • 实验1 现代C++编程初体验
    实验1:task.cpp1#include<iostream>2#include<string>3#include<vector>4#include<algorithm>5usingnamespacestd;67template<typenameT>8voidoutput(constT&c);910voidtest1();11voidtest2();......
  • 实验二
    实验一源代码#include<stdio.h>#include<stdlib.h>#include<time.h>#defineN5#defineN1397#defineN2476#defineN321intmain(){intcnt;intrandom_major,random_no;srand(time(NULL));//以当前系统时间作为随机种子cnt=0;while(cnt<N){ra......
  • 实验2
    任务1:1#include<stdio.h>2#include<stdlib.h>3#include<time.h>45#defineN56#defineN13977#defineN24768#defineN321910intmain(){11intcnt;12intrandom_major,random_no;1314srand(ti......
  • C++常用库函数
    大小写转换islower/isupper函数用于检查一个字符是否为小写或大小字母,需要包含头文件<cctype>,也可以包含万能头文件<bits/stdc++.h>.函数返回值类型为bool类型。intmain(){ charch1='A'; charch2='b'; //使用islower函数判断是否为小写字母 if(islower......
  • 实验2
    1#include<stdio.h>2#include<stdlib.h>3#include<time.h>45#defineN56#defineN13977#defineN24768#defineN321910intmain(){11intcnt;12intrandom_major,random_no;1314srand(time(NULL)......
  • C(十五)函数综合(一)--- 开公司吗?
    在这篇文章中,杰哥将带大家“开公司”。主干内容部分(你将收获):......
  • 程序的运行时间(超时是咋回事 + 测试实验)
    一些同学可能对计算机运行的速度还没有概念,只是感觉计算机运行速度应该会很快,那么在OJ(onlinejudge,比如大家熟悉的leetcode)上做算法题目的时候为什么OJ会判断运行的程序超时呢?其超时情况如图所示:超时是怎么回事在leetcode上练习算法的时候应该都遇到过一种错误是“超时”。也......
  • c语言模拟实现库函数 strlen strcpy strcat strcmp strstr
    一、模拟实现库函数strlen解释:strlen是求字符串长度的,求出的长度是不可能为负数所以返回类型设置为size_t也是合情合理的 typedefunsignedintsize_t\注意字符串已经'\0'作为结束标志,strlen函数返回的是在字符串中'\0'前面出现的字符个数(不包含'\0')。size_......
  • 20241011-1 字符串函数自写
    #include<stdio.h>#include<string.h>unsignedintmystrlen(char*str){ unsignedintcount=0; while('\0'!=*(str++)) { count++; } returncount;}/*str1:目的字符串str2:源字符串*/voidmystrcpy(char*str1,char*str2){ ch......