点赞(0)
 

0.0分

116 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 69 条评论

dotcpp0754239 9月前 回复TA
不如我的,不用任何技巧的超简单代码
#include<stdio.h>
int main(void)
{
    float M,N=0,i,sum;
	scanf("%f %f",&M,&N);
	sum=M;
	for(i=1;i<=N;i++)
	{
		M=M/2;
		sum=sum+2*M;
		if(i==N)
		{
			printf("%.2f %.2f ",M,sum-2*M);
		}
	}
    return 0;
}
于怡彤 1年前 回复TA
#include<stdio.h>
#include<math.h>
int main()
{
    int M, N;
    double high = 0, distance = 0;
    int b, c;
    double Sn;
    scanf("%d%d", &M, &N);
    b = pow(2, N);
    high = M / (b * 1.0);
    c = pow(1.0 / 2.0, N);
    Sn = M / 2.0 * (1.0 - c) / (1.0 - 0.5); // 修改此处
    distance = M + 2 * Sn;
    printf("%.2lf %.2lf", high, distance);
    return 0;
}请问这为什么不对啊
jvhhv 1年前 回复TA
#include<stdio.h>
int main()
{
    int N,x,temp=1;
  
  double sum=0 ,M,num;;
    scanf("%lf %d",&M,&N);
    
    for(x=1;x<=N;x++)
    { num=M; 
        M/=2;
        sum+=(num+M);
          
        if(M<1)
        {
            break;
            temp=0;
        }
        
    }
    printf("%.2lf %.2lf",M,sum-M);
    return 0;
}
勇敢冲 1年前 回复TA
@编程小顽石 为什么s=s+2*l,2l也不是一次降落反弹的高度啊?
uq_96643382197 1年前 回复TA
@冚旾虁矲 #include<stdio.h> int main() {     float M,N,sum = 0.0;     scanf("%f %f",&M,&N);     for(int i=1;i<=N;i++){      sum +=(M +M/2);      M = M/2;     }     printf("%.2f %.2f",M,sum-M);     return 0; }
冚旾虁矲 1年前 回复TA
#include<stdio.h>
int main() {
	float a[3] = { 0,0,0},m,n;
	scanf("%f%f", &m,&n);
	for (; n != 0; n--) {
		a[1] += m*2;
		if (a[2] == 0)a[2] = 1,a[1]-=m;
		a[0] = m / 2;
		m = a[0];
	}
	printf("%.2f %.2f", a[0],a[1]);
}
WSangSang 1年前 回复TA
#include<stdio.h>
int main() {
	int m, n;
	int i;
	float h, l=0;
	scanf("%d %d", &m, &n);
	h=m;
	for(i=1; i<=n; i++) {
		h/=2;
		l+=3*h;
	}
	printf("%.2f %.2f\n", h, l-h);
	
	return 0;
}
Urstdog 1年前 回复TA
#include<stdio.h>
int main()
{   int i;
    int N;
    double M,sum=0;
    scanf("%lf %d",&M,&N);
    for(i=0;i<N;i++){
        if(i!=N-1) sum=sum+M+M/2;//第N次落地,总路程不算第N次反弹高度
        else sum=sum+M;
        M=M/2;
    }
    printf("%.2lf %.2lf",M,sum);
    return 0;
}
菜鸡的小刘 1年前 回复TA
@不负此生 输入1000和0,会返还-1000的弹跳高度,明显有错,只是题目的样例没有用到N=0。
不负此生 1年前 回复TA
/*一球从M米高度自由下落,每次落地后返回原高度的一半,再落下。 它在第N次落地时反弹多高?共经过多少米? 保留两位小数
输入格式
M N
输出格式
它在第N次落地时反弹多高?共经过多少米? 保留两位小数,空格隔开,放在一行
样例输入
1000 5
样例输出
31.25 2875.00*/
#include<stdio.h>
int main()
{
	int n,h,i;
	double s=0,a,b;
	scanf("%d %d",&h,&n);
	a=h;
	for(i=1;i<=n;i++)
	{   
		
		s=s+a+a/2;
		a=a/2;
		
	}
	printf("%.2lf %.2lf\n",a,s-a);
	getchar();
	getchar();
	return 0;
}