牛客网OJ基础练习题(12.13.14)

164 阅读1分钟

「这是我参与11月更文挑战的第3天,活动详情查看:2021最后一次更文挑战


BC12 字符金字塔

描述

输入一个字符,用它构造一个三角形金字塔。

\

数据范围:保证输入的字符是一个 char 类型的值

输入描述:

输入只有一行,一个字符。

输出描述:

该字符构成的三角形金字塔。

示例1

输入:

1

复制

输出:

    1
   1 1
  1 1 1
 1 1 1 1
1 1 1 1 1

#include<stdio.h>
int main()
{
    int i,j;
  char a=0;
    scanf("%c",&a);
    for(i=0;i<5;i++)
    {
       //打印空格
        for(j=0;j<4-i;j++)
            printf(" ");
        //打印1
        for(j=0;j<=i;j++)
            printf("%c ",a);
        printf("\n");
    }
}




BC13 ASCII码

描述

BoBo教KiKi字符常量或字符变量表示的字符在内存中以ASCII码形式存储。BoBo出了一个问题给KiKi,转换以下ASCII码为对应字符并输出他们。

73, 32, 99, 97, 110, 32, 100, 111, 32, 105, 116 , 33

输入描述:

输出描述:

转换输出题目中给出的所有ASCII到对应的字符。


  #include<stdio.h>
int main()
{
	int i = 0;
	int sz = 0;
	int arr[] = { 73, 32, 99, 97, 110, 32, 100, 111, 32, 105, 116, 33 };
	sz = sizeof(arr) / sizeof(arr[0]);
	for (i = 0; i < sz; i++)
		printf("%c", arr[i]);
}

BC14 出生日期输入输出

描述

输入一个人的出生日期(包括年月日),将该生日中的年、月、日分别输出。

数据范围:年份满足 ,月份满足  ,日满足 \

输入描述:

输入只有一行,出生日期,包括年月日,年月日之间的数字没有分隔符。

输出描述:

三行,第一行为出生年份,第二行为出生月份,第三行为出生日期。输出时如果月份或天数为1位数,需要在1位数前面补0。

示例1

输入:

20130225 

复制

输出:

year=2013
month=02
date=25

复制

备注:

通过scanf函数的 %m 格式控制可以指定输入域宽,输入数据域宽(列数),按此宽度截取所需数据;通过printf函数的 %0 格式控制符,输出数值时指定左面不使用的空位置自动填0
#include<stdio.h>
/*
int main()

{

        int a;
        int year, month, date;
        scanf("%d", &a);
        year = a / 10000;
        month = (a / 1000 % 10) * 10 + (a / 100 % 10);
        date = a % 100;
        printf("year=%d\nmonth=%02d\ndate=%02d\n", year, month, date);
}
*/
int main()
{
    int year=0;
    int month=0;
    int day=0;
    scanf("%4d%2d%2d",&year,&month,&day);
    printf("year=%d\nmonth=%02d\ndate=%02d",year,month,day);
    return 0;
}