有时候你也只差那一点点

看三道C语言的编程题:

1、 5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果

A选手说:B第一,我第三。
B选手说:我第二,E第四。
C选手说:我第一,D第二。
D选手说:C最后,我第三。
E选手说:我第四,A第一。
比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。


2、日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。以下为4个嫌疑犯的供词。
A说:不是我。
B说:是C。
C说:是D。
D说:C在胡说
已知3个人说了真话,1个人说的是假话。
现在请根据这些信息,写一个程序来确定到底谁是凶手。

3、在屏幕上打印杨辉三角。

     拿到这三道题的时候,乍一看一道都不会写,瞬间懵逼尴尬。。纠结了好久百度了一下跳水的题,看到了五个循环,感觉秒懂,于是开始自己写程序求解。

     反省一下到底还是自己基础比较差,对于程序的条件没有感觉,写完跳水再看谋杀案的题,似乎就不那么难了,分析条件,设计变量,一步步就写出来了。最后一道题是打印杨辉三角,最主要的是分析每个数字之间的规律,对于第一行和第二行并没有太多规律可言,从第三行开始就可以发现规律,用二维数组表示杨辉三角可以总结出规律就是:第一行和第二行的数字都是1,接下来每一行的第一个数和最后一个数为1,其他数为上一行相近的两个数之和,用公式表示就是y[i][j] = y[i - 1][j - 1] + y[i - 1][j];知道了这些规律,写程序就不那么难了,多考虑考虑,也许答案就在你面前。


<span style="font-size:18px;">//杨辉三角
#define _CRT_SECURE_NO_WARNINGS 
#include<stdio.h>
#define N 10
int main()
{
int i = 0, j = 0;
int y[][N]={0};
y[1][0] = 1;
y[1][1] = 1;
y[0][0] = 1;
printf("%d\n",y[0][0]);
printf("%d %d\n",y[1][0],y[1][1]);
for (i = 2; i <= N; i++)
{
for (j = 0; j <= i; j++)
{
if (j == 0 || j == i)
{
printf("%d ",y[i][j]=1);
}
else
printf("%d ", y[i][j] = y[i - 1][j - 1] + y[i - 1][j]);
}
printf("\n");
}
system("pause");
return 0;
}



//跳水比赛
#include<stdio.h>

int main()
{
int a = 1, b = 1, c = 1, d = 1, e = 1;
int flag;
for (a = 1; a < 6; a++)
for (b = 1; b < 6; b++)
for (c = 1; c < 6; c++)
for (d = 1; d < 6; d++)
for (e = 1; e < 6; e++)
{
if (((b == 1) + (a == 3) == 1) &&
((b == 2) + (e == 4) == 1) &&
((c == 1) + (d == 2) == 1) &&
((c == 5) + (d == 3) == 1) &&
((e == 4) + (a == 1) == 1))
{
printf(" a=%d, b=%d ,c=%d, d=%d% , e=%d", a, b, c, d, e);
goto flag;
}
}
flag:


system("pause");
return 0;
}



//谋杀案
#include<stdio.h>

int main()
{
    int killer=0;
for (killer = 'a'; killer < 'e'; killer++)
{
if ((killer != 'a') + (killer == 'c') + (killer == 'd') + (killer != 'd') == 3)
{
printf("凶手是%c\n", killer);
}

}
system("pause");
return 0;
}</span>

其实每次不会写程序去看别人的代码时都会有很多感慨:'‘哦,原来是这样啊 “,”原来这么简单就搞定了“,哎,但是慢慢来吧,要把基础做好,不要放弃,一定会有提高的。奋斗奋斗

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值