您的位置:

赛车排队c语言,c语言赛车游戏

本文目录一览:

c语言问题 急 赛车计分问题 有n台车依次出发,经过若干圈竞速后相继到达终点。每台车的得分,是

这种算法不合理——————第一个出发,第一个到,得0分!!!!!!

#include stdio.h

#include string.h

const int MAXSIZE = 100;

typedef struct driver {

char name[10];

int start;

int end;

int score;

}Driver;

void Sort(Driver a[],int n) {

int i,j,k;

Driver t;

for(i = 0; i  n - 1; ++i) {

k = i;

for(j = i + 1; j  n; ++j) {

if(a[j].score  a[k].score)

k = j;

}

if(k != i) {

t = a[k];

a[k] = a[i];

a[i] = t;

}

}

}

int main() {

Driver a[MAXSIZE];

char name[10];

int i, n = 0, start, end, flag;

printf("出发顺序号 到达顺序号 车手('q' to quit):");

while(scanf("%d%d%9s",start,end,name) == 3  n  MAXSIZE) {

flag = 1;

for(i = 0; i  n  flag; ++i) {

if(strcmp(a[i].name,name) == 0) {

flag = 0;

printf("姓名重复,本次输入无效。\n");

}

if(a[i].start == start) {

flag = 0;

printf("%s 是在第%d个出发的,出发顺序号错误,本次输入无效。\n",a[i].name,a[i].start);

}

if(a[i].end == end) {

flag = 0;

printf("%s 是在第%d个到达的,到达顺序号错误,本次输入无效。\n",a[i].name,a[i].end);

}

}

if(flag == 1) {

a[n].start = start;

a[n].end = end;

strcpy(a[n].name,name);

a[n].score = start - end;

++n;

}

printf("出发顺序号 到达顺序号 车手('q' to quit):");

fflush(stdin);

}

Sort(a,n);

for(i = 0; i  n; ++i)

printf("%-12s %d\n",a[i].name,a[i].score);

    return 0;

}

一道c语言编程题(内详):4名专家对4款赛车进行评价……

!(m-2)+!(m-4)+!!(m-3)+!!(m-4)==1

有4的bool型的数值相加,当且仅当只有一个正确时,即有1个等于1.其他3个等于0,这时表示只有一位专家说对了,这是输出的m就是最好的赛车。

至于,为什么要减去数字:

!(m-2)看第一个,要是m=2是最好的,则m-2=0,再取反就是1,当别的取值都为0时,这就是最好的赛车;否则就不是。

其他的几个类似

C语言写的赛车游戏,赛道、车都画好了,不知道怎么实现小车的移动

每隔一定的时间间隔就画出赛道与车,而且赛道有不同的标志,就能显示出车在移动了,如果赛道始终是一样的,即使是不断的画出了赛道和车,也不能看出车在移动。

排队问题 c语言

//compiler:GCC

//如果你的编译器不支持C99,那么你需要把arr[t][10000]和ming[t]中的t换成一个具体数字

#include stdio.h

int main(int argc, char **argv)

{

int t;

scanf("%d", t);

int arr[t][10000];//存放T组M人的编号

int ming[t][2];//存放小明在t组队伍中的编号和人数

int count;//每组队伍的人数

int i,j;

for(i = 0; i t; i++)

{

scanf("%d", count);

for(j = 0; j count; j++)

scanf("%d", arr[i][j]);

scanf("%d", ming[i][0]);

ming[i][1] = count;

}

for(i = 0; i t; i++)

{

for(j = 0; j ming[i][1]; j++)

if(arr[i][j] != ming[i][0])

printf("%d ", arr[i][j]);

else

continue;

printf("\n");

}

return 0;

}