谁家孩子跑最慢 苏小红 张、王、李三家各有三个小孩。一天,三家的九个孩子在一起比赛短跑,规定不分年龄大小,跑第一得9分,跑第二得8分,类推。

该文章展示了一个C语言程序,用于解决一个涉及短跑比赛得分逻辑的问题。程序使用穷举和递推的方法,确定每个家庭孩子的得分,以及最后一名来自哪家的孩子。题目条件包括家庭总分相同、不同名次不相邻等。程序输出了可能的得分情况,并指出了最后一名孩子的家庭归属。
摘要由CSDN通过智能技术生成
谁家孩子跑最慢
    张、王、李三家各有三个小孩。一天,三家的九个孩子在一起比赛短
跑,规定不分年龄大小,跑第一得9分,跑第二得8分,一次类推。比赛结果
各家的总分相同,且这些孩子没有同时到达终点,也没有一家的两个或三
个孩子获得相连的名次。已知获第一名的是李家的孩子,获得第二的是王
家的孩子。求各家各个孩子的得分,获得最后一名的是谁家的孩子?
**输入格式要求:提示信息:"The last one arrived to end is a child from family Zhang.\n"
**输出格式要求:"%d  "
程序运行示例如下:
7  5  3  
8  6  1  
9  4  2  
The last one arrived to end is a child from family Wang.

适用初学者,刚学穷举与递推的时候。

#include<stdio.h>
int main(void)
{
    int a,b,c,d,l1,l2,l3;
    for(a=1;a<8;a++){
        for(b=1;b<8;b++){
            for(c=1;c<8;c++){
                for(d=1;d<8;d++){
                    if(a>b&&c>d&&a!=c&&a!=d&&b!=c&&b!=d){
                        if(a+b==6&&c+d==7&&a-b!=1&&c-d!=1){
                            for(l1=1;l1<8;l1++)
                            {
                                for(l2=1;l2<8;l2++)
                                {
                                    l3=15-l1-l2;
                                    if(l1>l2&&l2>l3&&l1!=a&&l1!=b&&l1!=c&&l1!=d&&l2!=a&&l2!=b&&l2!=c&&l2!=d&&l3!=a&&l3!=b&&l3!=c&&l3!=d)
                                    {
                                        printf("%d  %d  %d  \n8  %d  %d  \n9  %d  %d  \n",l1,l2,l3,c,d,a,b);
                                        if(a==1||b==1)
                                            {
                                                printf("The last one arrived to end is a child from family Zhang.\n");
                                            }
                                        else if(c==1||d==1)
                                            {
                                                printf("The last one arrived to end is a child from family Wang.\n");
                                            }
                                        else
                                            {
                                                printf("The last one arrived to end is a child from family Li.\n");
                                            }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值