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;
}
相关推荐
zwjapple13 分钟前
全栈开发面试高频算法题
算法·面试·职场和发展
北漂IT民工_程序员_ZG14 分钟前
SpringBean生命周期,动态代理
java·spring boot·spring
不穿格子的程序员15 分钟前
从零开始写算法——链表篇5:K个一组翻转链表 + 排序链表
算法·链表·分治
青鸟21816 分钟前
从资深开发到脱产管理的心态转变
后端·算法·程序员
晨曦夜月25 分钟前
笔试强训day7
开发语言·c++·算法
iAkuya31 分钟前
(leetcode)力扣100 14合并区间(差分/排序)
算法·leetcode·职场和发展
老华带你飞36 分钟前
建筑材料管理|基于springboot 建筑材料管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·学习·spring
木心爱编程44 分钟前
【Qt 5.14.2 新手实战】QTC++入门筑基——按钮与标签联动:QPushButton + QLabel 实现图片切换器
java·c++·qt
leiming61 小时前
C++ 02 函数模板案例
开发语言·c++·算法
椰羊~王小美1 小时前
setScale没传roudingmode,为什么会报错
java