其他分享
首页 > 其他分享> > 牛客网刷题笔记

牛客网刷题笔记

作者:互联网

库函数

C语言库函数记录


多组输入

1、!=EOF

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

#include <stdio.h>

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

    return 0;
}

2、~按位取反

#include <stdio.h>

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

    return 0;
}

消除\n的方法

BC46 判断是元音还是辅音

1、getchar

#include <stdio.h>
#include <string.h>

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。

/%

在这里插入图片描述


标签:iq,ch,EOF,int,scanf,网刷题,笔记,牛客,printf
来源: https://blog.csdn.net/qq_56884023/article/details/119913211