本文目錄一覽:
- 1、c語言問題 急 賽車計分問題 有n台車依次出發,經過若干圈競速後相繼到達終點。每台車的得分,是
- 2、一道c語言編程題(內詳):4名專家對4款賽車進行評價……
- 3、C語言寫的賽車遊戲,賽道、車都畫好了,不知道怎麼實現小車的移動
- 4、排隊問題 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;
}
原創文章,作者:RTPF,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/141187.html