C语言刷题训练DAY.6

1.进制A+B

解题思路:

这里我们按照备注的提示,调整输入格式。

注意:%x是十六进制的数字

%o是八进制的数字

解题代码:

cpp 复制代码
#include<stdio.h>
int main()
{
	int a = 0;
	int b = 0;
	scanf("0x%x 0%o", &a, &b);
	printf("%d", a + b);

	return 0;
}

2.网购

解题思路:

这里我们用if else语句判断是双十一还是双十二,用了优惠卷还是没有用优惠卷。
解题代码:

cpp 复制代码
#include<stdio.h>
int main()
{
	//价格
	double a = 0.0;
	//月
	int b = 0;
	//日
	int c= 0;
	//优惠卷
	int d = 0;
	//最后的价格
	double last = 0.0;
	//输入
	scanf("%lf %d %d %d", &a, &b, &c, &d);
	if (b == 11 && c == 11)
	{
		//使用优惠卷
		if (d == 1)
		{
			last = a * 0.7 - 50;
		}
		//不使用优惠卷
		else
		{
			last = a * 0.7;
		}
	}
	else if (b == 12 & c == 12)
	{
		//使用优惠卷
		if (d == 1)
		{
			last = a * 0.8 - 50;
		}
		//不使用优惠卷
		else
		{
			last = a * 0.8;	
		}
	}
	if (last < 0.0)
		printf("%.2lf\n", 0.0);
	else
		printf("%.2lf\n",last);
	return 0;
}

3.争夺前五名

解题思路:

这里我们把值输入到数组里面存储,再使用冒泡排序即可,不懂冒泡排序的可以看我下面这个文章。

冒 泡 排 序_艾老虎尤的博客-CSDN博客

解题代码:

cpp 复制代码
#include<stdio.h>
int main()
{
	int n = 0;
	int arr[40] = { 0 };
	scanf("%d", &n);
	int i = 0;
	for (i = 0; i < n; i++)
	{
		scanf("%d", &arr[i]);
	}
	for (i = 0; i < n - 1; i++)//趟数
	{
		int j = 0;
		for (j = 0; j < n - 1 - i; j++)
		{//判断是否要交换
			if (arr[j] < arr[j + 1])
			{
				int tmp = arr[j];

				arr[j ] = arr[j+1];

				arr[j+1] = tmp;
			}
		}
	}
	for (i = 0; i < 5; i++)
	{
		//输出
		printf("%d ", arr[i]);
	}
	return 0;
}

4.竞选社长

解题思路:

这里我们写两种方法,第一种方法是利用库函数gets,获得输入的字符再进行判断。

第二种是用getchar,获得输入的字符再进行判断。

方法一:库函数gets

cpp 复制代码
#include<stdio.h>
int main()
{
	char a[100] = { 0 };
	gets(a);
	int i = 0;
	int count_A = 0;
	int count_B = 0;
	while (a[i] != 0)
	{
		if (a[i] == 'A')
		{
			count_A++;
		}
		if(a[i] == 'B')
		{
			count_B++;
		}
		i++;
	}
	if (count_A > count_B)
	{
		printf("A");
	}
	else if(count_A < count_B)
	{
		printf("B");
	}
	else
	{
		printf("E");
	}
	return 0;
}

方法二:getchar

cpp 复制代码
#include<stdio.h>
int main()
{
	int n = 0;
	int count_A = 0;
	int count_B = 0;
	while ((n = getchar()) != '0')
	{
		if (n == 'A')
		{
			count_A++;
		}
		if(n == 'B')
		{
			count_B++;
		}
	}
		if (count_A > count_B)
		{
			printf("A");
		}
		else if(count_A < count_B)
		{
			printf("B");
		}
		else
		{
			printf("E");
		}
	return 0;
}

5.你是天才吗?

解题思路:

直接输入,并且用while语句设置循环条件,if语句判断即可。

解题代码:

cpp 复制代码
#include<stdio.h>
int main()
{
	int IQ = 0;
	while(scanf("%d", &IQ) != EOF)
	{
		if (IQ >= 140)
			printf("Genius");
	}
	return 0;
}

6.完美成绩

解题思路:

直接输入,并且用while语句,&&操作符设置循环条件,if语句判断即可。

解题代码:

cpp 复制代码
#include<stdio.h>
int main()
{
	int a = 0;
	while(scanf("%d", &a) != EOF)
	{
		if (a >= 90 && a <= 100)
			printf("Perfect");
			
	}
	return 0;
}
相关推荐
是小胡嘛12 分钟前
数据结构之旅:红黑树如何驱动 Set 和 Map
数据结构·算法
m0_7482550215 分钟前
前端常用算法集合
前端·算法
FF在路上22 分钟前
Knife4j调试实体类传参扁平化模式修改:default-flat-param-object: true
java·开发语言
真的很上进29 分钟前
如何借助 Babel+TS+ESLint 构建现代 JS 工程环境?
java·前端·javascript·css·react.js·vue·html
呆呆的猫38 分钟前
【LeetCode】227、基本计算器 II
算法·leetcode·职场和发展
Tisfy40 分钟前
LeetCode 1705.吃苹果的最大数目:贪心(优先队列) - 清晰题解
算法·leetcode·优先队列·贪心·
余额不足121381 小时前
C语言基础十六:枚举、c语言中文件的读写操作
linux·c语言·算法
众拾达人1 小时前
Android自动化测试实战 Java篇 主流工具 框架 脚本
android·java·开发语言
皓木.1 小时前
Mybatis-Plus
java·开发语言
不良人天码星1 小时前
lombok插件不生效
java·开发语言·intellij-idea