【问题标题】:How to check whether multiple variables contain a simple sequence如何检查多个变量是否包含一个简单序列
【发布时间】:2019-08-26 12:30:55
【问题描述】:

我有 5 个整数变量,分别命名为 x_1x_2x_3x_4x_5

int x_1, x_2, x_3, x_4, x_5;

我正在使用 srand() 初始化这些变量的值。

srand(time(NULL));
x_1=rand()%10+1; x_2=rand()%10+1;
...

我需要检查这些变量是否包含一系列升序数字(如扑克中的顺子)。顺序无关紧要。

例如:

x_1=3, x_2=5, x_3=1, x_4=2 x_5=4.

这应该给我 1。但这应该给我 0:

x_1=4, x_2=1, x_3=4 …

(我没有完成列表,因为我已经有多个 4。)

注意:我不能使用数组和全局变量。

注意:很抱歉我无法发送完整代码,因为我什至不知道从哪里开始。

【问题讨论】:

  • “跟风”究竟是什么意思?你在检查重复项吗?
  • 你遇到过“数组”吗?您的 5 个变量应替换为单个数组。您是否询问是否正确排序了简单序列的 5 个变量(在数组中)中的数字集?序列必须从 1 开始还是 [4, 5, 6, 7, 8] 是可接受的序列? (我知道值的顺序无关紧要 - 但排序和扫描将是发现问题的一种简单方法。)
  • 我觉得禁止使用数组会使这个问题更烦人
  • 互相关注是指它不能有重复,还是必须有 5 个数字范围内的每个整数(1,2,4,5,6 返回 0)?
  • @Patrick 它不能有重复项,它们必须相互跟随,而不必在范围内。我的意思是当你订购它们时,它们必须是 (2,3,4,5,6) 或 (1,2,3,4,5) 像这样。

标签: c


【解决方案1】:

据我所知,您不能有重复项。
可以从任何数字开始。数字可以是任何顺序。
如果排序后的数字创建 secuence。示例:1,2,3,4,5 或 4,5,6,7,8。
如果这是给定的任务,那么:

  1. 检查重复项:

    if(count_how_many_exist(x_1, x_1, x_2...) != 1){//error duplicates} if(count_(x_2,x_1,x_2,...)... //Function code int count_(int search,...){ int result =0; if(search == x_1)result += 1; //... return result; }

  2. 如果数字存在,则搜索 4 次,从最小的一个开始。

    int small = x_1; if(small > x_2)small = x_2; //... if(count_(small+1, x_1,...) != 1)//error if(count_(small+2... ... if(count_(small+4...

【讨论】:

    猜你喜欢
    • 2019-05-29
    • 2012-09-17
    • 2018-06-29
    • 2013-02-08
    • 2017-06-27
    • 1970-01-01
    • 1970-01-01
    • 2012-03-26
    • 2021-09-02
    相关资源
    最近更新 更多