牛客网基础语法61~70题

牛客网基础语法61~70题

前言:今天是咱们第七期刷牛客网上的题目。
目标:可以掌握循环嵌套,逻辑思维更加清晰,对循环知识掌握熟练。
鸡汤:城市人潮拥挤,别走丢了自己。先干为敬,大家随意。

第一题

牛客网基础语法61~70题_第1张图片

我这里采用循环的形式来解决,有点大材小用,但是技多不压身。

#include
int main()
{
	//初始化
	int n = 0;
	int arr[3] = { 2,3,7 };//定义被除数
	int i = 0;
	int count = 0;//计入次数
	//输入
	scanf("%d", &n);
	//判断
	for (i = 0; i < 3; i++)
	{
		if (n % arr[i] == 0)
		{
			printf("%d ", arr[i]);
		}
		else
		{
			count++;
		}
	}
	//如果 2 3 7都不能除尽
	if (count == 3)
	{
		printf("n\n");
	}
	return 0;
}

第二题

牛客网基础语法61~70题_第2张图片

可别忘了 0 既不是正数也不是负数

#include
int main()
{
	//定义数组
	int arr[10] = { 0 };
	int i = 0;
	int positive_num = 0;
	int minus = 0;
	//输入十个数字,并且判断
	for (i = 0; i < 10; i++)
	{
		scanf("%d", &arr[i]);
		//统计负数
		if (arr[i] < 0)
		{
			minus++;
		}
		//统计正数
		if (arr[i] > 0)
		{
			positive_num++;
		}
	}
	printf("positive:%d\n", positive_num);
	printf("negative:%d\n", minus);
	return 0;
}

第三题

牛客网基础语法61~70题_第3张图片

我可能做的有点笨,但是思路清晰,对不对

#include 
int main()
{
    //初始化
    double val = 0;
    int month = 0;
    int day = 0;
    int roll = 0;
    double money = 0;
    //输入
    scanf("%lf %d %d %d", &val, &month, &day, &roll);
    //判断
    //不是双12也不是双11
    if ((month != 12 || day != 12) || (month != 11 || day != 11))
    {
        if (roll == 1)
        {
            //金钱数小于50
            if (money < 50)
            {
                money = 0;
            }
            //金钱数大于等于50
            else
            {
                money = money - 50;
            }
        }
    }
    //是双11
    if (month == 11 && day == 11)
    {
        money = val * 0.7;
        if (roll == 1)
        {
            if (money < 50)
            {
                money = 0;
            }
            else
            {
                money = money - 50;
            }
        }
    }
    //是双12
    if (month == 12 && day == 12)
    {
        money = val * 0.8;
        if (roll == 1)
        {
            if (money < 50)
            {
                money = 0;
            }
            else
            {
                money = money - 50;
            }
        }
    }
    printf("%0.2lf", money);
    return 0;
}

第四题

牛客网基础语法61~70题_第4张图片

#include 
int main() 
{
    //定义变量
    float a;
    char b;
    int money = 20;
    //输入
    scanf("%f %c", &a, &b);
    //判断
    //当包裹大于 0 并且小于 1
    if (a > 0 && a <= 1)
    {
        //判断是否需要快送
        if (b == 'y')
            printf("25");
        else
            printf("20");
    }
    //当包裹大于 1 
    if (a > 1)
    {
        money = money + ceil(a - 1);
        //判断是否需要快送
        if (b == 'y')
            printf("%d", money + 5);
        else
            printf("%d", money);
    }
}

第五题

牛客网基础语法61~70题_第5张图片

这里出现一道c++的题目,但是写起来没问题的。

#include 
#include 
using namespace std;

int main() {
    
    double price;
    cin >> price;

    double cost = 0.0;

    // write your code here.......
    if(price>=100&&price<500)
        cost=price*0.9;
    else if(price>=500&&price<2000)
        cost=price*0.8;
    else if(price>=2000&&price<5000)
        cost=price*0.7;
    else if(price>=5000)
        cost=price*0.6;

    cout << setiosflags(ios::fixed) << setprecision(1) << cost << endl;

    return 0;
}

第六题

牛客网基础语法61~70题_第6张图片

这里我用了三目操作符,不知道大家还记不记得。

#include 
int main() 
{
    //初始化
    int a;
    float taxi;
    //输入
    scanf("%d", &a);
    //计算打车时间
    taxi = a / 10.0 + 10;
    //打印
    printf("%c\n", a < taxi ? 'w' : 'v');
    return 0;
}

第七题

牛客网基础语法61~70题_第7张图片

其实这道题还是比较基础的,可别写着写着就搞混啦。

#include 
int main()
{
    //定义变量
    int x, y, x1, y1;
    //输入
    scanf("%d %d\n%d %d", &x, &y, &x1, &y1);
    //判断
    if (x1 - x == 0 && y1 > y)
        printf("u");
    else if (x1 - x == 0 && y1 < y)
        printf("d");
    else if (x1 > x && y1 - y1 == 0)
        printf("r");
    else if (x1 < x && y1 - y1 == 0)
        printf("l");
    return 0;
}

第八题

牛客网基础语法61~70题_第8张图片

这里有更好的解法,我写成下面的代码的样子,目的是让大家再巩固巩固switch语句。大家有更好的解法,留言给大家看看

#include 
int main()
{
    //初始化
    int a = 0;
    //输入
    scanf("%d", &a);
    switch (a)
    {
        case 1:
            printf("Monday"); break;
        case 2:
            printf("Tuesday"); break;
        case 3:
            printf("Wednesday"); break;
        case 4:
            printf("Thursday"); break;
        case 5:
            printf("Friday"); break;
        case 6:
            printf("Saturday"); break;
        case 7:
            printf("Sunday");break;
    }
    return 0;
}

第九题

牛客网基础语法61~70题_第9张图片

多组输入别忘了要吸收 \n
**~scanf(“%d”, &a)这里和scanf(“%d”,&a) != EOF**是一样的。

#include 
int main()
{
    //初始化
    int a = 0;
    //实现多组输入
    while (~scanf("%d", &a))
    {
        //吸收 \n
        getchar();
        switch (a)
        {
            case 200:
                printf("OK\n"); break;
            case 202:
                printf("Accepted\n"); break;
            case 400:
                printf("Bad Request\n"); break;
            case 403:
                printf("Forbidden\n"); break;
            case 404:
                printf("Not Found\n"); break;
            case 500:
                printf("Internal Server Error\n"); break;
            case 502:
                printf("Bad Gateway\n");
        }
    }
    return 0;
}

第十题

牛客网基础语法61~70题_第10张图片

其实上面的几道题都是相似的。

#include
int main() 
{
    //初始化
    int a = 0;
    //多组输入
    while (scanf("%d", &a) != EOF) 
    {
        //判断
        if (a > 0) 
            printf("1\n");
        else if (a == 0) 
            printf("0.5\n");
        else 
            printf("0\n");
    }
    return 0;
}

结束语

今天的刷题内容就到这里啦,如果上面的题目你有更优的解法,请打在下面的评论区中,独乐乐不如众乐乐。麻烦大家举起自己的小手,给博主三连,有你们的支持就是我最大的动力。预知后事如何,且听下回分解。
牛客网基础语法61~70题_第11张图片

你可能感兴趣的:(牛客网基础语法130道题,c语言)