目录
2、判断是否为字符(其中有说,判断函数的库函数isalpha(),)
1、BC12 字符圣诞树
描述
输入一个字符,用它构造一个边长为5的三角形圣诞树。
数据范围:保证输入的字符是一个 char 类型的值
输入描述:
输入只有一行,一个字符。
输出描述:
该字符构成的三角形圣诞树。
#include <stdio.h>
int main(){
char x;
scanf("%c",&x);
for(int i=1;i<=5;i++){
for(int j=5-i;j>0;j--){
printf(" ");
}
for(int m=1;m<=i;m++)
printf("%c ",x);
printf("\n");
}
}
我觉得强的就是按照规律,利用了for语句,要小心的就是for语句的大括号应该怎么括内容,这个方法是真的好,一行一行去考虑比整个去考虑要好理解。
2、判断是否为字符(其中有说,判断函数的库函数isalpha(),<ctype.h>)
描述
从键盘任意输入一个字符,编程判断是否是字母(包括大小写)。
输入描述:
输入包括一个字符。
输出描述:
输出该字符是字母(YES)或不是(NO)。
实例:
输入 H
输出 YES
#include<stdio.h>
int main()
{
int ch = 0;
while ((ch = getchar()) != EOF)
{ if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))
{
printf("YES\n");
}
else
{
printf("NO\n");
}
getchar();
}
return 0;
}
这里getchar()是为了处理\n,如果不加就会出现下面的情况
因为空格也是字符,在你敲键盘的时候。所以有两个结果。
还可以利用库函数isalpha(),来判断是否为字符,首先看一下isalpha()函数的用法条件
要加头文件<ctype.h>
#include<stdio.h>
#include<ctype.h>
int main()
{
int ch = 0;
while ((ch = getchar()) != EOF)
{
if (isalpha(ch))//加头文件ctype.h
{
printf("YES\n");
}
else
{
printf("NO\n");
}
getchar();//如果不加的话,那输入字符就带人空格
//了,也可以读入空格那结果就翻倍了,所以这个要加一个读入空格字符
}
return 0;
}
这个的EOF是getchar()函数失败的结果。
3、一组数字转换为ASCII码
描述
给定一组数,73,32,99,97,100,32,100,111.
输出相应的ASCII码。
输入描述:
一组数
输出描述:
ASCII码
实例:
输入 无
输出 I cad do
#include<stdio.h>
int main()
{
int arr[] = { 73,32,99,97,100,32,100,111 };
int sc = sizeof(arr) / sizeof(arr[0]);
for (int i = 0; i < sc; i++)
{
printf("%c", arr[i]);
}
return 0;
}
这个巧妙的是利用总字节除于第一个字符的字节得到数组中字符的个数
int sc = sizeof(arr) / sizeof(arr[0]);
4、2的n次方计算(移位运算)
描述:
不使用累计乘法的基础上,通过移位运算(<<)实现2的n次方的计算
数据范围:0 \le n \le 31 \0≤n≤31
输入描述:
一行输入整数n(0 <= n < 31)。
输出描述:
输出对应的2的n次方的结果。
实例:
输入:2
输出:4
#include<stdio.h>
int main()
{
int n=0;
while((scanf("%d",&n))!=EOF)
{
printf("%d",1<<n);
return 0;
}
}
这里要讲到这个移位运算
怎么说呢?就是一个让它在位上移动(移动的是2进制的位),用一个例子来说明吧!
开学几天,寒假本来说练题,然后有点玩过头了,我的笔记还没带,年前练的,感觉都忘得差不多了,哎,刚开学,数据库,计组,单片机刚开始让我觉得有点....,罢了 还是慢慢来吧!