C語言誰家孩子跑得最慢
張、王、李三家各有三個小孩。一天,三家的九個孩子在一起比賽短跑,規(guī)定不分年齡大小,跑第一得 9 分,跑第二得 8 分,依次類推。比賽結果顯示各家的總分相同,且這些孩子沒有同時到達終點的,也沒有一家的兩個或三個孩子獲得相連的名次。已知獲第一名的是李家的孩子,獲第二名的是王家的孩子。獲得最后一名的是誰家的孩子?
算法思想
按題目的條件,共有 1+2+3+…+9=45 分,每家孩子的得分應為 15 分。根據(jù)題意可知,獲第一名的是李家的孩子,獲第二名的是王家的孩子,則可推出:獲第三名的一定是張家的孩子。由“這些孩子沒有同時到達終點的”可知:名次不能并列,由“沒有一家的兩個或三個孩子獲得相連的名次”可知:第四名不能是張家的孩子。
程序代碼
#include <stdio.h>
int score[4][4];
int main()
{
int i,j,k,who;
score[1][1]=7;
score[2][1]=8;
score[3][1]=9;
for(i=4;i<6;i++)
for(j=4;j<7;j++)
for(k=4;i!=j&&k<7;k++)
if(k!=i&&k!=j&&15-i-score[1][1]!=15-j-score[2][1]
&&15-i-score[1][1]!=15-k-score[3][1]
&&15-j-score[2][1]!=15-k-score[3][1])
{
score[1][2]=i;score[1][3]=15-i-7;
score[2][2]=j;score[2][3]=15-j-8;
score[3][2]=k;score[3][3]=15-k-9;
}
for(who=0,i=1;i<=3;i++,printf("\n"))
for(j=1;j<=3;j++)
{
printf("%d",score[i][j]);
if(score[i][j]==1)
who=i;
}
if(who==1)
printf("最后一名是張家孩子\n");
else if(who==2)
printf("最后一名是王家孩子\n");
else
printf("最后一名是李家孩子\n");
return 0;
}
調(diào)試運行結果
根據(jù)算法思想,通過程序的運行得到結果如下所示:
753
861
942
最后一名是王家孩子
總結
本實例主要運用了二維數(shù)組的引用和循環(huán)的嵌套。二維數(shù)組元素的引用形式為“數(shù)組名[下標1][下標2]”。例如“a[1][2]”其下標是可以大于或者等于 0 的整型常量、整型變量或者整型表達式。
引用二維數(shù)組元素時,下標不要越界,也就是說下標值需要從 0 開始,但不要超過行、列的范圍。
作者:大學生新聞網(wǎng) 來源:大學生新聞網(wǎng)
- C語言獲取矩陣的最大值及其下標
- 本實例要求使用二維數(shù)組將一個 3×4 的矩陣中所有元素的最大值及其下標獲取,通過該程序,掌握二維數(shù)組的引用知識。
- 03-09 關注:0
- C語言誰家孩子跑得最慢
- 張、王、李三家各有三個小孩。一天,三家的九個孩子在一起比賽短跑,規(guī)定不分年齡大小,跑第一得 9 分,跑第二得 8 分,依次類推。
- 03-09 關注:0
- C語言狼追兔子問題
- 一只兔子躲進了 10 個環(huán)形分布的洞的某一個,狼在第一個洞沒有找到兔子,就隔一個洞,到第三個洞去找
- 03-09 關注:0
- C語言兔子生兔子問題
- 假設一對兔子的成熟期是一個月,即一個月可長成成兔,那么,如果每對成兔每個月都生一對小兔
- 03-09 關注:0
- C語言矩陣轉置
- 本實例是利用數(shù)組解決線性代數(shù)中的矩陣轉置問題。
- 03-09 關注:0
- C語言求回文素數(shù)
- 任意的整數(shù),當從左向右讀與從右向左讀是相同的,且為素數(shù)時,稱為回文素數(shù)。求 1000 以內(nèi)的所有回文素數(shù)。
- 03-09 關注:0