//初始化一个二维数组,用二维数组来保存杨辉三角的数值
//首先创建一个数组,暂定数组为10*10
// 初始化一下数组,我们都知道杨辉三角的腰都为1,
// 并且每一行的个数都是以1递增的个数
// 最重要的一点就是,杨辉三角的每一个数,刚好等于前一行的前两个数的和
// 这是我们这个代码的规律所在
// 利用for有规律的初始化为一
//1 0 0 0 0 0 0 0 0 0
//1 1 0 0 0 0 0 0 0 0
//1 0 1 0 0 0 0 0 0 0
//1 0 0 1 0 0 0 0 0 0
//1 0 0 0 1 0 0 0 0 0
//1 0 0 0 0 1 0 0 0 0
//1 0 0 0 0 0 1 0 0 0
//1 0 0 0 0 0 0 1 0 0
//1 0 0 0 0 0 0 0 1 0
//1 0 0 0 0 0 0 0 0 1
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#define Num 10//如果想要打印更多的杨辉三角,只需要修改这个数值即可,比较方便
int main()
{
int i, j, k, arr[Num][Num] ={0};//需要先初始化二维数组为0
arr[0][0] = 1;//首先把第一行 第一个数初始化为1
for (i=1 ; i < Num; i++)//由于第一行已经初始化了,这里循环从第二行开始
{
arr[i][0] = 1;
arr[i][i] = 1;
}
for (i = 2; i < Num; i++)//杨辉三角是从第三行才开始相加
{
//由于杨辉三角的每一行的个数都是递增的,所以根据i的大小来提前让循环结束
for (j = 1; j < i; j++)
{
arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
//杨辉三角的每一个数刚好等于这个数的上一行的前两个数相加
}
}
for (i = 0; i < Num; i++)
{
for (k = 1; k <Num-i; k++)//这里为了美观一点,在打印前先打印一些空格,虽然也没美观多少
{
printf(" ");
}
//这里我们只需要打印我们想要的数就可以
//刚好每一行的j<=i的范围是我们要打印的数
for (j = 0; j <=i; j++)
{
//%4d就表示数据宽度为4,不够的那空格来补
//如果超出四位,则应该原型输出。
printf("%4d", arr[i][j]);
}
printf("
");
}
return 0;
}
//日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。
//以下为4个嫌疑犯的供词:
//A说:不是我。
//B说:是C。
//C说:是D。
//D说:C在胡说
//已知3个人说了真话,1个人说的是假话。
//现在请根据这些信息,写一个程序来确定到底谁是凶手。
//这里我们暴力求解,由于可能性不多,把所有可能性罗列出来,最后用一个if来判断答案
//int main()
//{
// int a = 0;
// int b = 0;
// int c = 0;
// int d = 0;
// char k='A';//代表凶手
// for (k; k <= 'D'; k++)
// {
// if (3 == (k != 'A') + (k == 'C') + (k == 'D') + (k != 'D'))
// {
// printf("凶手是%c", k);
// }
// }
// return 0;
//}
//这里我们暴力求解,由于可能性不多,把所有可能性罗列出来,最后用一个if来判断答案
//int main()
//{
// int a = 0;
// int b = 0;
// int c = 0;
// int d = 0;
// int e = 0;
// for (a = 1; a <= 5; a++)
// {
// for (b = 1; b <= 5; b++)
// {
// for (c = 1; c <= 5; c++)
// {
// for (d = 1; d <= 5; d++)
// {
// for (e = 1; e <= 5; e++)
// {
// if (((b == 2) + (a == 3)) && ((b == 2) + (e == 4)) &&
// ((c == 1) + (d == 2))&&((d == 3) + (c == 5) &&
// ((e == 4) + (a == 1))&&(a!=b)&&(a!=c)&&
// (a!=d)&&(a!=e)&&(b!=c)&&(b!=d)&&(b!=e)&&
// (c!=d)&&(c!=e)&&(d!=e)))
// {
// printf("a排名%d b排名%d c排名%d d排名%d e排名%d
"
// ,a,b,c,d,e);
// }
// }
// }
// }
// }
// }
// return 0;
//}