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;
}
相关推荐
Tisfy1 小时前
LeetCode 2360.图中的最长环:一步一打卡(不撞南墙不回头) - 通过故事讲道理
算法·leetcode··题解
Aphelios3801 小时前
Java全栈面试宝典:线程机制与Spring IOC容器深度解析
java·开发语言·jvm·学习·rbac
LuckyAnJo1 小时前
Leetcode-100 链表常见操作
算法·leetcode·链表
qq_529835351 小时前
装饰器模式:如何用Java打扮一个对象?
java·开发语言·装饰器模式
日暮南城故里1 小时前
Java学习------源码解析之StringBuilder
java·开发语言·学习·源码
双叶8362 小时前
(C语言)虚数运算(结构体教程)(指针解法)(C语言教程)
c语言·开发语言·数据结构·c++·算法·microsoft
工一木子2 小时前
大厂算法面试 7 天冲刺:第5天- 递归与动态规划深度解析 - 高频面试算法 & Java 实战
算法·面试·动态规划
一个public的class4 小时前
什么是 Java 泛型
java·开发语言·后端
士别三日&&当刮目相看4 小时前
JAVA学习*Object类
java·开发语言·学习
invincible_Tang4 小时前
R格式 (15届B) 高精度
开发语言·算法·r语言