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