2021-02-21

本文包含一系列编程挑战,涉及计算序列和、兔子繁殖、礼炮鸣响次数以及数组操作。例如,计算2/1+3/2+5/3+8/5+…的前n项和,求a+aa+aaa+aa…a(n个a)之和,确定兔子繁衍达到n对所需月数,以及找出数组中每行删除最大值后的结果。此外,还涉及判断输入数字是否符合特定条件(如个位数为奇数、十位数为偶数)以及计算两点间距离和素数计数等数学问题。
摘要由CSDN通过智能技术生成

23.求序列前n项的和:输入一个正整数n,输出2/1+3/2+5/3+8/5+…的前n项之和(该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子),保留2位小数。试编写相应程序。
#include"stdio.h"
void main()
{
double a=2,t;
double b=1;
double sum=0;
int n=0,num=1;
printf(“请输入N:”);
scanf("%d",&n);
while(num<=n)
{
sum=sum+a/b;
t=b;
b=a;
a=t+b;
num++;
}
printf(“前%d项之和是:%.2f\n”,n,sum);
}
24.求序列和。输入两个正整数a和n,求a+aa+aaa+aa…a(n个a)之和。比如输入2和3,输出246(2+22+222)。试编写相应程序。
#include<stdio.h>
void main()
{
int a,n,s=0;
printf(“Input a: “);
scanf(”%d”,&a);
printf(“Input n:”);
scanf("%d",&n);
while(n>=0)
{
s=an+s;
a=a
10;
n–;
}
printf(“s= %d\n”,s);
}
兔子繁衍问题:一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到n对?试编写相应程序。#include<stdio.h>
void main()
{
int N,a=2,b=0,c=0,i=1;
scanf("%d",&N);
if(N>1)
{
while(c<2*N)
{ c=a+b;
b=a;
a=c;
i++;
}
printf("%d",i);
}
else printf(“1”);
}
26.在海军节开幕式上,有A、B、C三艘军舰要同时开始鸣放礼炮各21响。已知A舰每隔5秒放一次,B舰每隔6秒放一次,C舰每隔7秒放一次,假设各炮手对时间的掌握非常准确,请编程计算观众总共可以听到几次礼炮声。

#include<stdlib.h>
#include<stdio.h>
void main()
{
int i,count=0;
int all[141];
for(i=0;i<141;i++)
all[i]=0;
for(i=0;i<=520;i+=5)
{
all[i]++;
}
for(i=0;i<=6
20;i+=6)
{
all[i]++;
}
for(i=0;i<=720;i+=7)
{
all[i]++;
}
for(i=0;i<141;i++)
{
if(all[i]!=0)
{
count++;
printf("%4d",i);}
}
printf(“count=%d”,count);
}
有一个5
5的二维数组,要求删除每行上的最大值,将剩余的数据输出。
#include<stdio.h>
void main()
{
int a[5][5]={1,42,3,45,5,6,7,78,9,10,11,12,34,77,19,22,15,36,28,40,99,66,2,100,38},b[5];
int i,j;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
printf("%5d",a[i][j]);
printf("\n");
}
for(i=0;i<5;i++)
{
b[i]=a[i][0];
for(j=1;j<5;j++)
if(a[i][j]>b[i])
b[i]=a[i][j];
}
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
if(a[i][j]==b[i])
a[i][j]=0;
}
printf("\n");
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
printf("%5d",a[i][j]);
printf("\n");
}
}
28.从键盘输入10个正负相间的整数,输出个位数是奇数、十位数是偶数的所有数。

#include “stdio.h”
void main()
{
int arr[10];
int i;
printf(“please input the numbers:\n”);
for(i=0;i<10;i++)
scanf("%d",&arr[i]);

for(i=0;i<10;i++)
if(arr[i]%10%2!=0&&arr[i]/10%2
printf("%d\t",arr[i]);
}
计算两点间的距离:给定平面任意两点坐标(x1,y1)和(x2,y2),求这两点之间的距离(保留两位小数)。
#include<stdio.h>
#include<math.h>
int main()
{
double a, b, x, y;
scanf("%lf%lf%lf%lf",&a,&b,&x,&y);
printf("%.2f\n",sqrt((a - x) * (a - x) + (b - y) * (b - y)));
}
输入两个正整数m和n(1<=m,n<=500),统计并输出m和n之间的素数的个数以及这些素数的和。
#include <stdio.h>
void main()
{
int m,n,sum=0,counter=0;
int i,j;
scanf("%d%d",&m,&n);
for(i=m;i<=n;i++)
{
for(j=2;j<i;j++)
if(i%j==
break;
if(j==i)
{
sum=sum+i;
counter++;
}
}
printf(“counter=%d,sum=%d\n”,counter,sum);
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值