当前位置:首页 » 编程语言 » c语言赛跑
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言赛跑

发布时间: 2022-05-19 04:45:25

Ⅰ 求c语言编写一个龟兔赛跑的程序。

/*乌龟每分钟3米。兔子每分钟9米,每10分钟回头看乌龟是否落后,落后则休息30分钟。输入时间t*/
#include<stdio.h>

intmain()
{
intt=0,trab=0,T,dtur=0,drab=0;
/*定义外界时间t,兔子时间trab,输入时间T,乌龟跑的距离dtur,兔子跑的距离drab*/
intrest=0;/*定义休息标识1,初始化为0*/
printf("请输入兔子和乌龟已经跑了的时间:");
scanf("%d",&T);
while(t!=T)
{
dtur+=3;//乌龟移动
if(rest!=1)//如果兔子不在休息状态
{
trab++;//兔子时间流逝
drab+=9;//兔子移动
}
t++;//外界时间流逝
if(trab%10==0&&rest==0)
{//如果兔子时间是10的整数倍且兔子不在休息状态,则回头查看和乌龟的距离
if(drab>dtur)//如果兔子在乌龟前面
{
rest=1;
trab+=30;//兔子休息,兔子时间先增加30,等外界时间追上
}
}
if(t==trab)//如果外界时间增加到和兔子时间一样,则唤醒兔子
rest=0;
}
printf("兔子,乌龟分别了%d米,%d米--->",drab,dtur);
if(drab>dtur)
{printf("兔子快!! ");}
elseif(drab<dtur)
{printf("乌龟快!! ");}
elseif(drab==dtur)
{printf("一样快!! ");}
return0;
}

Ⅱ C语言 关于龟兔赛跑的一道题,我非常想知道这种方法哪里错了(另一种直接写的我会)

else
s=225-3/2*(60-t)*(60-t);
printf("^_^ %d",s+3*T); //应该写%g,因为输出量是一个浮点数
}

还有,计算错误。例如,输入5:

不知道为什么都是与时间的平方相关?

if(t>0&&t<10)
s=3*t*t;
else if(t>45&&t<50)
s=3*(t-45)*(t-45);
else if(t>10&&t<30)
s=900-3/2*(30-t)*(30-t);

这种计算时,3/2会被计算得到的值是1(而不是1.5,因为3和2都是int,所以商也是int)

Ⅲ 我用C语言编写了一个模拟龟兔赛跑的程序。可是结果很奇怪。

没见你的代码,猜想你可能是用rand()函数
但rand()函数需要设置种子,如果不设置,那么默认种子值为1,当种子值相同时,产生的随机数也相同。(所以,rand函数实际应该叫生成伪随机数的函数,而不是生成真正随机数的函数)
设置种子需要用到函数srand()
实际应用时可以用当前的时间作为srand的输入,从而产生互不相同的种子,这样才能产生真正的随机数

不知道我猜的对不对

Ⅳ 龟兔赛跑的程序用C#编写

下面这段代码模拟了龟兔赛跑爬山的情况,其中有个时钟触发设置每秒执行一次循环,乌龟的规则是:50% 的机会快走(右移三格);20% 的机会下滑(左移六格);30% 的机会慢走(右移一格).

兔子的规则是:20% 的机会睡觉(不移动);20% 的机会大跳(右移九格);10% 的机会大滑(左移十二格);30% 的机会小跳(右移一格);20% 的机会小滑(左移两格).

其中最先走到整 70 格的胜利,超过 70 格的从头开始;程序在一条线上打印了龟兔移动的轨迹,当两者重合时打印 P;乌龟用 G 表示,兔子用 T 表示.

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

void guitu(void);

main()
{
srand(time(NULL));
guitu();
return 0;
}

void guitu()
{
int i,j,count=0,cou=0,number;
char printfun[71];

while(1) {
for(j=0;j<70;j++)
printfun[j]=' ';
printfun[71]='';

number=rand()%10+1;
printf("n");

if(1<=number && number<=5) {
count=count+3;
if(count>70) count=0;
printfun[count]='G';
}

if(6<=number && number<=7) {
count=count-6;
if(count<0) count=0;
printfun[count]='G';
}

if(8<=number && number<=10) {
count=count+1;
if(count>70) count=0;
printfun[count]='G';
}

if(1<=number && number<=2) {
cou=cou+0;
printfun[cou]='T';
}

if(3<=number && number<=4) {
cou=cou+9;
if(cou>70) cou=0;
printfun[cou]='T';
}

if(number==5) {
cou=cou-12;
if(cou<0) cou=0;
printfun[cou]='T';
}

if(6<=number && number<=8) {
cou=cou+1;
if(cou>70) cou=0;
printfun[cou]='T';
}

if(9<=number && number<=10) {
cou=cou-2;
if(cou<0) cou=0;
printfun[cou]='T';
}

if(count==cou)
printfun[count]='P';

printf("%s",printfun);
printf("nn");

if(count==70) {
printf("gui win!!!nn");
break;
}
if(cou==70) {
printf("tu win!!!nn");
break;
}
sleep(1);
}
}

Ⅳ 如何用C语言编程判断任意一个学生的50米跑步成绩是否达到及格水平

所有的x=都写错了,判断相等要写做==,也就是if(x=='M'&&,单独的一个=只是赋值,只要不是0就一定成立。
另外,没必要去判断四种组合,可以是这样的
if(x=='M'){
if(y<=8.1) printf("该男生的成绩及格");
else printf("该男生的成绩不及格");
}
else

{
if(y<=9.1) printf("该女生的成绩及格");
else printf("该女生的成绩不及格");
}

Ⅵ c语言 跑步问题。如下;(求代码与注解)

不知道可不可以这样写,一个数:212
两个数:1
211

2
210、、、;三个数:1
2
199;、、、然后就相当于两个循环,每次取出的数互不相同,且想加得n,这些数都可以排成升序。具体代码我就不写了。

Ⅶ C语言大学教程 第六版 7.17龟兔赛跑

代码中乌龟和兔子速度的期望并不是0.6和0.5,movewg()函数中有case 1、2时wg -= 6,出现路程回退,如果在初始一定时间内 wg<7时出现 case 1或case 2则路程回退到起点(实际回退距离并不是6),所以平均速度也就不是 0.6了,同理movetz()实际平均速度也不是0.5,如果要求速度期望0.6和0.5可以写成 movewg(){ case 1: case 2: case 3: case 4:break;default wg+=1;} movewg(){ case 1: tz+=5;default break;}这种形式。

Ⅷ c语言龟兔赛跑

/*龟兔赛跑,矩形跑道,乌龟3m/s,
兔子9m/s,,兔子每10分钟回头一次,如果超过乌龟,
则兔子休息30分钟。如果没有就继续跑,乌龟一直在跑,求当输入时间T时,兔子和乌龟谁赢或平局*/
#include<stdio.h>
int
main()
{
int
i,j;
double
gui=0,tu=0;
static
s=3;
static
t=9;
printf("输入时间i:");
scanf("%d",&i);
for(j=0;(i-40)>j;j=j+40)
{
gui=gui+s*40;
tu=tu+t*10;
}
if((i-j)<10)
{
gui=gui+s*(i-j);
tu=tu+t*(i-j);
}
else
{
gui=gui+s*10;
tu=tu+t*(i-j);
}
if(gui>tu)
printf("乌龟比兔快!
");
if(gui=tu)
printf("龟兔速度相同!");
else
printf("兔比乌龟快!");
return
0;
}

Ⅸ 用C语言编程有10个参加100米赛跑的成绩,先排序,然后输出前3名的成绩

main()
{
float a[10], t;
int i, j;
printf("输入成绩:\n");
for(i=0; i<10; i++)
scanf("%f", &a[i]);
for(i=1; i<10; i++)
{
for(j=0; j<10-i; j++)
{
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
printf("排序后的成绩:\n");
for(i=0; i<10; i++)
printf("%.2f ", a[i]);
for(i=0; i<3; i++)
printf("\n第%d名:%.2f\n", i+1,a[i]);
}

Ⅹ C语言,写一个马拉松程序,让用户输入总里程(公里)跑过的距离(公里)跑步用时(分钟)计算还需要时间

#include<stdio.h>
main()
{inta,b,c,d;
while(1){
printf("请输入总里程(公里):");
scanf("%d",&a);
printf("请输入跑过的距离(公里):");
scanf("%d",&b);
printf("请输入跑步用时(分钟):");
scanf("%d",&c);
d=(a-b)*c*60/b;
printf("%d:%d:%d ",d/3600,d%3600/60,d%60);
}
}

如图所示,望采纳。。。。。。