牛客网C基础题目练习1

目录

题目1:竞选社长

题目2:最高分数

题目3:判断是元音还是辅音

题目4:判断是不是字母

题目5:字母大小写转换

题目1:竞选社长

牛客网C基础题目练习1_第1张图片

法1:使用字符串数组

代码实现:

int main()
{
    char arr[100]={0};
    scanf("%s",arr);
    int count1 = 0;
    int count2 = 0;
    int sz = sizeof(arr)/sizeof(arr[0]);
    for(int i = 0;icount2)
    {
        printf("A\n");
    }
    else 
    {
        printf("B\n");
    }
    return 0;
}

法2:使用gets函数获取字符串

int main()
{
    char buf[100]={0};
    gets(buf);
    int count1 = 0;
    int count2 = 0;
    int i = 0;
    while(buf[i]!='\0')
    {
        if(buf[i]=='A')
            count1++;
        if(buf[i]=='B')
            count2++;
        i++;
    }
    if(count1==count2)
    {
        printf("E\n");
    }
    else if(count1>count2)
    {
        printf("A\n");
    }
    else 
    {
        printf("B\n");
    }
    return 0;
}

法3:只定义一个变量来统计票多少

代码实现:

int main()
{
    char buf[100]={0};
    gets(buf);
    int flag = 0;
    int i = 0;
    while(buf[i]!='\0')
    {
        if(buf[i]=='A')
            flag++;
        if(buf[i]=='B')
            flag--;
        i++;
    }
    if(flag==0)
    {
        printf("E\n");
    }
    else if(flag>0)
    {
        printf("A\n");
    }
    else 
    {
        printf("B\n");
    }
    return 0;
}

法4:逐个字符读取

代码实现:

int main()
{
    int ch = 0;
    int flag = 0;
    while((ch=getchar())!='\0'&&ch!=EOF)
    {
        if(ch=='A')
        {
             flag++;
        }
        if(ch=='B')
        {
             flag--;
        }
    }
    if(flag==0)
    {
        printf("E\n");
    }
    else if(flag>0)
    {
        printf("A\n");
    }
    else if(flag<0)
    {
        printf("B\n");
    }
    return 0;
}

题目2:最高分数

牛客网C基础题目练习1_第2张图片

法1:定义整型变量存储数据

代码实现:

int main()
{
    int n1 = 0;
    int n2 = 0;
    int n3 = 0;
    while(~scanf("%d %d %d",&n1,&n2,&n3))
    {
        int max = n1>n2?n1:n2;
        max=max>n3?max:n3;
        printf("%d\n",max);
    }
    return 0;
}

法2:定义数组存储数据

代码实现:

int main()
{
    int num[3]={0};
    while(~scanf("%d %d %d",&num[0],&num[1],&num[2]))
    {
        int max = 0;
        int i = 0;
        for(i=0;i<3;i++)
        {
            if(num[i]>max)
            {
                max = num[i];
            }
        }
        printf("%d\n",max);
    }
    return 0;
}

题目3:判断是元音还是辅音

牛客网C基础题目练习1_第3张图片

法1 常规解题

代码实现:

int main()
{
    int ch = 0;
    char vowel[20]="AaEeIiOoUu";
    int i = 0;
    while((ch=getchar())!=EOF)
    {
        getchar();//读取回车字符
        for(i=0;i<10;i++)
        {
            if(ch==vowel[i])
            {
                printf("Vowel\n");
                break;
            }
        }
        if(i==10)
        {
            printf("Consonant\n");
        }
    }
    return 0;
}

法2:使用strchr库函数,判断一个字符串里面是否出现该字符

如果存在返回该字符在字符串中的地址,如果不存在返回空指针。

代码实现:

#include 
#include 
int main()
{
    int ch = 0;
    char vowel[20]="AaEeIiOoUu";
    int i = 0;
    while((ch=getchar())!=EOF)
    {
        getchar();
        if(strchr(vowel,ch))
        {
            printf("Vowel\n");
        }
        else 
        {
            printf("Consonant\n");
        }
    }
    return 0;
}
#include 
#include 
int main()
{
    int ch = 0;
    char vowel[20]="AaEeIiOoUu";
    int i = 0;
    while((scanf(" %c",&ch))!=EOF) 
    //%c前面空格处理字符前面的空白字符,也就是消除\n
    {
        //getchar();
        if(strchr(vowel,ch))
        {
            printf("Vowel\n");
        }
        else 
        {
            printf("Consonant\n");
        }
    }
    return 0;
}
%c前面加上空格,会消化掉前面所有的空白字符,然后读取下一个字符
#include 
#include 
int main()
{
    int ch = 0;
    char vowel[20]="AaEeIiOoUu";
    int i = 0;
    while((scanf("%c\n",&ch))!=EOF) 
    {
        if(strchr(vowel,ch))
        {
            printf("Vowel\n");
        }
        else 
        {
            printf("Consonant\n");
        }
    }
    return 0;
}
在%c的后边加一个\n,其实在输入时候就会消化掉\n字符,不会在下次读取字符时留下隐患。

题目4:判断是不是字母

牛客网C基础题目练习1_第4张图片

法1:常规解题

代码实现:

int main()
{
    char ch = 0;
    while((scanf("%c\n",&ch))!=EOF)
    {
        if((ch>='A'&&ch<='Z')||(ch>='a'&&ch<='z'))
        printf("%c is an alphabet.\n",ch);
        else
        printf("%c is not an alphabet.\n",ch);
    }
    return 0;
} 

法2:isalpha库函数判断是不是字母

#include 
#include 
int main()
{
    char ch = 0;
    while((scanf("%c\n",&ch))!=EOF)
    {
        if(isalpha(ch))
        printf("%c is an alphabet.\n",ch);
        else
        printf("%c is not an alphabet.\n",ch);
    }
    return 0;
} 
如果ch是字母,返回非零数字,如果ch不是字母,返回0

题目5:字母大小写转换

牛客网C基础题目练习1_第5张图片

isupper库函数判断字母是否为大写字母

islower库函数判断字母是否为小写字母

tolower库函数转小写字母

toupper库函数转大写字母

代码实现:

#include 
#include 
int main()
{
    char ch = 0;
    while((scanf("%c\n",&ch))!=EOF)
    {
        if(isupper(ch))//判断是否为大写
        printf("%c\n",tolower(ch));//将大写转换为小写
        if(islower(ch))//判断是否为小写
        printf("%c\n",toupper(ch));//将小写转换为大写
    }
    return 0;
}
注意:
本题中使用的所有库函数全部用于处理字符,不能处理字符串

你可能感兴趣的:(C语言基础,c语言,算法,开发语言)