c++ 如何判断前后输入的数字重复? 30
12个7*7的矩阵,每个矩阵里是1-49,各输入6个数字,不能重复。或者说,第1-6个数不重复,第7-12个数不重复,第13-18个数不重复等等,要判断是否重复输入。最后...
12个7*7的矩阵,每个矩阵里是1-49,各输入6个数字,不能重复。或者说,第1-6个数不重复,第7-12个数不重复,第13-18个数不重复等等,要判断是否重复输入。最后排列出各矩阵里的数字。个位数前面补0.求程序。
展开
展开全部
你本身就是存储到二维数组中,保存时可以直接去除之前的数据比对的。
int a[7][7] = {0};
存数据的话,你基本上就是2层循环了,最内层写入的时候再加一个循环控制下。
for(int x = 0; .....略)
{
for(int y = 0;...)
{
int temp = 0;
cin >>temp;
bool has_num = false;
for(int z = 0; z < y; ++z)
{
if(a[x][z] == temp)
has_num = true;
}
// 这边处理输入
if(!has_num)
{
a[x][y] = temp;
}
else
{
//这边可以提示或要求重新输入等操作。
}
}
}
int a[7][7] = {0};
存数据的话,你基本上就是2层循环了,最内层写入的时候再加一个循环控制下。
for(int x = 0; .....略)
{
for(int y = 0;...)
{
int temp = 0;
cin >>temp;
bool has_num = false;
for(int z = 0; z < y; ++z)
{
if(a[x][z] == temp)
has_num = true;
}
// 这边处理输入
if(!has_num)
{
a[x][y] = temp;
}
else
{
//这边可以提示或要求重新输入等操作。
}
}
}
追问
从 bool has_num 到 a[x][y] 的语句能解释一下吗?不是很明白。我之前写过类似的,但马上就判定为输入的第一个数也是重复输入的。
追答
bool 就是一个标记呗~~~
你不是要每一个小数组都要检查一下么,个么每次都是从第0个位置检查到它前一个位置呗,就是z的循环检查做的事。
如果有一个相同的了,就把标记改为真,后面根据标记的真假做相应处理呗。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-01-18
展开全部
定义一个[7][7]的二维数组的类,实例化12个。定义一个[6]的一维数组的类,然后开始循环输入。一维数组判断异同,没有相同的就就把数据放入二维数组,有相同的就提示重新输入。然后输入完成直接输出就行了。
然后怎么输入到数组,就是计数了,每计数到49个,二维数组的实例序号增加1。计数器归零。这其实可以算是三维数组了。但是C++是面向对象的语言,尽量用面向对象来分析问题了。具体实现的话,还是得看你对面向对象的思想掌握程度,不同的人有不同的实现方法,我也就大概告诉你我是怎么想的。
还有一个小问题就是,六个数的话,6*8才48 但是有49个数,我对这个不太理解,是第九次数入的数字只有一个在这个数组里,另外5个放到下一个数组还是另外五个直接抛弃,然后重新计数?
然后怎么输入到数组,就是计数了,每计数到49个,二维数组的实例序号增加1。计数器归零。这其实可以算是三维数组了。但是C++是面向对象的语言,尽量用面向对象来分析问题了。具体实现的话,还是得看你对面向对象的思想掌握程度,不同的人有不同的实现方法,我也就大概告诉你我是怎么想的。
还有一个小问题就是,六个数的话,6*8才48 但是有49个数,我对这个不太理解,是第九次数入的数字只有一个在这个数组里,另外5个放到下一个数组还是另外五个直接抛弃,然后重新计数?
更多追问追答
追问
呃,就是德国的乐透彩,选择数字的过程。
追答
那个是49中选6个吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那就得实时输入了 要用getchar然后转换
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询