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;
}
相关推荐
失散1326 分钟前
分布式专题——51 ES 深度分页问题及其解决方案详解
java·分布式·elasticsearch·架构
FreeBuf_29 分钟前
思科CCX软件曝高危RCE:攻击者可利用Java RMI和CCX Editor获取root权限
java·网络·安全
_esther_30 分钟前
【字符串String类大集合】构造创建_常量池情况_获取方法_截取方法_转换方法_String和基本数据类型互转方法
java
lkbhua莱克瓦2431 分钟前
Java基础——集合进阶5
java·开发语言·集合·泛型
Jerry丶Li39 分钟前
二十七、通信接口
c语言·stm32·单片机·嵌入式硬件
WZTTMoon1 小时前
Spring 配置解析与 @Value 注入核心流程详解
java·spring boot·spring
程序定小飞1 小时前
基于springboot的健身房管理系统开发与设计
java·spring boot·后端
wxin_VXbishe2 小时前
springboot在线课堂教学辅助系统-计算机毕业设计源码07741
java·c++·spring boot·python·spring·django·php
信仰_2739932432 小时前
RedisCluster客户端路由智能缓存
java·spring·缓存
兰雪簪轩2 小时前
仓颉语言内存布局优化技巧:从字节对齐到缓存友好的深度实践
java·spring·缓存