牛客网刷题笔记

牛客网编程初学者入门训练 BC

BC7-BC52

BC53-BC70 图形

BC72-BC87

BC88-BC98

BC99-BC119

BC122-BC139


库函数

C语言库函数记录


多组输入

1、!=EOF

~按位取反
~EOF
~-1
-1补码全1 整数在内存中存的是补码
~-1是全0 为假

#include 

int main()
{
    int iq = 0;
    while (~scanf("%d", &iq))
    {
        if (iq >= 140)
        {
            printf("Genius\n");
        }
    }

    return 0;
}

2、~按位取反

#include 

int main()
{
    int iq = 0;
    while ((scanf("%d", &iq)) != EOF)
    {
        if (iq >= 140)
        {
            printf("Genius\n");
        }
    }

    return 0;
}

消除\n的方法

BC46 判断是元音还是辅音

1、getchar

#include 
#include 

int main()
{
    int ch = 0;
    char vowel[] = "aeiouAEIOU";

    while ((ch = getchar()) != EOF)
    {
        if(strchr(vowel, ch))
        {
            printf("Vowel\n");
        }
        else
        {
            printf("Consonant\n");
        }
        getchar(); //清理 \n
    }

    return 0;
}

2、scanf空格处理\n

#inlcude <stdio.h>

int main()
{
    int ch = 0;
    char vowel[] = "aeiouAEIOU";

    //在%c的前面加上空格,会消化掉前面所有的空白字符,然后读取下一个字符
    while (scanf(" %c", &ch) != EOF)
    {
        if (strchr(vowel, ch))
        {
            printf("Vowel\n");
        }
        else
        {
            printf("Consonant\n");
        }
    }

    return 0;
}

3、加\n

int main()
{
    int ch = 0;
    char vowel[] = "aeiouAEIOU";

    //在%c的后面加上'\n',其实在输入时就会消化掉这个\n字符
    //不会为下次留下空白字符的隐患
    while (scanf("%c\n", &ch) != EOF)
    {
        if (strchr(vowel, ch))
        {
            printf("Vowel\n");
        }
        else
        {
            printf("Consonant\n");
        }
    }

    return 0;
}


八进制,十六进制

012 - 八进制 12
0X12 - 16进制 18
打印:八进制%o,十六进制%X


域宽

printf可以使用使用格式控制串“%md”输出域宽为m的十进制整数

printf("%15d", 0xABCDEF);


输入补0

通过scanf函数的%m格式控制可以指定输入域宽,输入数据域宽(列数),按此宽度截取所需数据;

通过printf函数的==%0==格式控制符,输出数值时指定左面不使用的空位置自动填0。

/%

牛客网刷题笔记_第1张图片


你可能感兴趣的:(C语言编程题,c语言)