你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

“21天好习惯”第一期-5

2021/10/27 6:34:37

john带上小狗Tommy去见女友Mary,他们同时出发相向而行。Tommy跑得快,遇到Mary以后就往回跑,遇到John以后再往回跑,……,直到两人相遇。请问:Tommy一共跑了多少路程?

这其实是一道简单的高中物理题目,我们需要将mary和john相遇的时间算出来,再用时间乘上tommy的速度就是tommy跑了的路程。

那么清楚了算法,我们就要开始写代码了

#include <stdio.h>
int main()
{
double z,x,c,v,b,n;
scanf("%lf",&z);
scanf("%lf %lf %lf",&x,&c,&v);
b=z/(x+c);
n=b*v;
printf("%.2lf",n);
return 0;
}

上面选用了double以防数字过长无法容纳,最后打印的时候保留了两个小数点。

那么这道题目就解决了,这里分享这道题目的主要目的是讲一个解决实际问题的步骤

那就是先想好我们要如何去计算我们的所求值,然后把计算过程用代码表示出来。

再看一题

输入两个时区号 a 和 b,输出这两个时区间的时差 c,说明:东8区的时区号为8,西5区的时区号为-5。

两个时差c应该等于a-b

但是如果a为一个负数,b为一个正数,那就会时c成为负值,但时差是大于零的,我们在这里就有很多种方法来编写这个程序了,比如用if语句把正负分开计算,比如a大于b时用a-b,a小于b时用b-a这样来确保c为正数。第二种方法就是用abs绝对值来搞定,见下面这个代码段

#include <stdio.h>
#include <math.h>
int main()
{
    int a,b,c;
    scanf("%d %d",&a,&b);
    c=abs(a-b);
    printf("%d",c);
   return 0; 
}

这里用c=abs(a-b);很好的解决了c为负数的问题。

abs是取绝对值