當前位置:首頁 » 編程語言 » 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);
}
}

如圖所示,望採納。。。。。。