每日刷题计划-1-29

137 阅读2分钟

「这是我参与2022首次更文挑战的第10天,活动详情查看:2022首次更文挑战」 BC109 杨辉三角

描述

KiKi知道什么叫杨辉三角之后对杨辉三角产生了浓厚的兴趣,他想知道杨辉三角的前n行,请编程帮他解答。杨辉三角,本质上是二项式(a+b)的n次方展开后各项的系数排成的三角形。其性质包括:每行的端点数为1, 一个数也为1;每个数等于它左上方和上方的两数之和。

输入描述:

第一行包含一个整数数n。 (1≤n≤30)

输出描述:

包含n行,为杨辉三角的前n行,每个数输出域宽为5。

示例1

输入:

6

复制

输出:

    1
    1    1
    1    2    1
    1    3    3    1
    1    4    6    4    1
    1    5   10   10    5    1
#include<stdio.h>
int main()
{
    int n = 0;
    //输入n的值
    scanf("%d",&n);
    int arr[30][30] = {0};
    int i = 0;
    int j = 0;
    for(i = 0; i < n; i++)
    {
        for(j = 0; j <=i; j++)
        {
            if(i == j)
               arr[i][j] = 1;
             else if(j == 0)
                arr[i][j] = 1;
            else if(i > 1 && j > 0)
                arr[i][j] =arr[i-1][j-1] +arr[i-1][j];
        }
    }
    //输出
       for(i = 0; i < n; i++)
    {
        for(j = 0; j <=i; j++)
        {
            printf("%5d",arr[i][j]);//注意题目要求,输出域宽为5
        }
           printf("\n");
    }
    return 0;
}

BC110 井字棋

描述

KiKi和BoBo玩 “井”字棋。也就是在九宫格中,只要任意行、列,或者任意对角线上面出现三个连续相同的棋子,就能获胜。请根据棋盘状态,判断当前输赢。

输入描述:

三行三列的字符元素,代表棋盘状态,字符元素用空格分开,代表当前棋盘,其中元素为K代表KiKi玩家的棋子,为O表示没有棋子,为B代表BoBo玩家的棋子。

输出描述:

如果KiKi获胜,输出“KiKi wins!”;
如果BoBo获胜,输出“BoBo wins!”;
如果没有获胜,输出“No winner!”。

示例1

输入:

K O B
O K B
B O K

复制

输出:

KiKi wins!
#include<stdio.h>
int main()
{
    char arr[3][3] = {0};
    int i = 0;
    int j = 0;
    //下棋
    for(i = 0; i < 3; i++)
    {
        for(j = 0; j < 3; j++)
        {
            scanf(" %c",&arr[i][j]); //%c前面加个空格:吸收\n
        }
    }
    //判断输赢
    //遍历数组判断输赢
      char ch = 0;//用来记录谁赢
    for(i = 0; i < 3; i++)
    {
        //只需要一层循环即可
        if(arr[i][0] == arr[i][1] && arr[i][0]== arr[i][2])   //行元素相等
        {
            ch =arr[i][0];
            break;
        }
         if(arr[0][i] == arr[1][i]&& arr[0][i]== arr[2][i])    //列元素相等
        {
            ch =arr[0][i];
            break;
        }
    }
    if(arr[0][0] ==arr[1][1] &&arr[1][1]== arr[2][2])    //主对角
    {
        ch =arr[0][0];
    }
       if(arr[0][2] == arr[1][1] &&arr[0][2]== arr[2][0])    //副对角
    {
        ch =arr[0][2];
    }
    if(ch == 'K')
    {
        printf("KiKi wins!\n");
    }
    else if(ch == 'B')
    {
        printf("BoBo wins!\n");
    }
    else 
        printf("No winner!\n");
    return 0;
}