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;
}
相关推荐
_UMR_27 分钟前
springboot集成Jasypt实现配置文件启动时自动解密-ENC
java·spring boot·后端
程序员小假33 分钟前
我们来说说 Cookie、Session、Token、JWT
java·后端
短剑重铸之日1 小时前
《SpringBoot4.0初识》第一篇:前瞻与思想
java·开发语言·后端·spring·springboot4.0
千金裘换酒1 小时前
LeetCode反转链表
算法·leetcode·链表
蓝色王者1 小时前
springboot 2.6.13 整合flowable6.8.1
java·spring boot·后端
Tao____1 小时前
基于Ruoyi开发的IOT物联网平台
java·网络·物联网·mqtt·网络协议
JoyCheung-2 小时前
Free底层是怎么释放内存的
linux·c语言
byzh_rc2 小时前
[认知计算] 专栏总结
线性代数·算法·matlab·信号处理
花哥码天下2 小时前
apifox登录后设置token到环境变量
java·后端