IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> POJ假币问题 -> 正文阅读

[C++知识库]POJ假币问题

这道题的原始呈现和一些简单梳理,请看这位猿u;

https://blog.csdn.net/qq_41045071/article/details/81740569?utm_source=app&app_version=4.18.0&code=app_1562916241&uLinkId=usr1mkqgl919blen

在这里,我针对其原始程序,在思路和基本知识上又做了大量的注释说明

更加方便对这个程序的理解和学习,希望对大家能有帮助!谢谢。

#include<stdio.h>
 
int status[12];
char left[3][7],right[3][7],result[3][7];
 //全局变量的二维数组,3是3组数据,而7表示最大有6个字符,注意是6个! 
//判断当前的情况是否满足条件
bool Balanced()
/*
	bool类型变量是c++里面的知识,分为两种情况:
	1.true表示真,flase表示假;
	2.如果有值,0表示假,非0的值表示真;
	3.本程序中,函数的返回值是bool型,分别是true和flase; 
*/ 
{
	int i,k,leftw,rightw;
	for(i = 0; i < 3; i++)
	{
		leftw = rightw = 0;
		for(k = 0; k <6 && left[i][k] !=0; k++)
		{
			leftw += status[left[i][k]-'A'];
			rightw += status[right[i][k]-'A'];
		}
			if(leftw > rightw && result[i][0]!='u') //条件1 
				return false;
			if(leftw < rightw && result[i][0]!='d') //条件2 
				return false;
			if(leftw == rightw && result[i][0]!='e') //条件3 
				return false;	
	//这三个的逻辑含义就是,如果有矛盾的对立条件出现,那么假设是错的,也就是返回flase; 
	}
	return true; //否则返回true;	
} 
 
int main()
{
	int i,num;
	scanf("%d",&num);
	while(num--)//我的记忆方法是:变量在前,就先用其值,再--;反之,亦然; 
	{
		for(i = 0; i < 3; i++)
			scanf("%s%s%s",left[i],right[i],result[i]);//对于二维数组,第一个值确定,就相当于一个地址; 
	//经过上次的尝试,输入二维数组应该是用scanf,如果用get,好像不太行,反正我是出问题了,注意吧; 
		for(i = 0; i < 12; i++)
			status[i] = 0;
		for(i = 0; i < 12; i++)
		{
			status[i] = 1;    //第i枚硬币是较重假币 
			if(Balanced())    
				break;
			status[i] = -1;   //第i枚硬币是较轻假币 
			if(Balanced())
				break;
			status[i] = 0;	  //第i枚硬币是真币 
			//最后注意,把它的值还原为0,否则是bug; 
		}
		printf("%c is the counterfeit coin and it is %s.\n",i+'A',status[i] > 0?"heavy":"light");
	}
	return 0; 
} 

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-12-23 15:34:46  更:2021-12-23 15:36:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 12:54:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码