Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 增加数组中的间隔,检查_C_Arrays - Fatal编程技术网

C 增加数组中的间隔,检查

C 增加数组中的间隔,检查,c,arrays,C,Arrays,因此,我试图检查之前输入的数组是否以1的间隔递增,从数字1开始,以n结束(n是数组大小) 以下是我目前得到的信息: for (int i =0; i<n;i++){ for (next=i;next<n;next++){ if(arr[i]+1 = arr[next]){ x = 1; //ignore this, it relates to the re

因此,我试图检查之前输入的数组是否以1的间隔递增,从数字1开始,以n结束(n是数组大小)

以下是我目前得到的信息:

    for (int i =0; i<n;i++){
                for (next=i;next<n;next++){
                    if(arr[i]+1 = arr[next]){
                        x = 1;  //ignore this, it relates to the rest of the code.
                    }
                    else{
                        printf ("\nThis is not a permutation.");
                        break;
                }
        }
}

(int i=0;i的
如下所示:

if(arr[i]+1 = arr[next]){
您打算进行比较:

if(arr[i]+1 == arr[next]){

您是否尝试了
if(arr[i]+1==arr[next])
而不是
if(arr[i]+1=arr[next])

如果您需要检查序列是否在增加,为什么要将每个元素与其他元素进行比较?您应该只需要一个for循环:

for (i = 1; i < n; i++)
{
    if (arr[i - 1] + 1 == arr[i])
        ... // keep going
    else
        ... // not a permutation
}
(i=1;i { 如果(arr[i-1]+1==arr[i]) …继续 其他的 …//不是一个排列 }

基本上,您的代码所做的是逐个检查第i个1后面的每个元素是否大于第i个1。最终,这将导致一种不可能的情况(因为两个数字必须相等,但必须同时相差1)。

听起来您想测试
arr[0]==1
并且每个后续数组元素都比上一个元素大。这不等于检查数组中的值
[1,2,3,…,n]

for (int i = 0; i < n; ++n) {
    if (arr[i] != i + 1) {
        printf("\nThis is not a permutation.");
        break;
    }
}
for(int i=0;i
“此外,如果您能深入了解数组是否以数字1开头,我们将不胜感激。”为什么您不能只检查
arr[0]==1
?如果您用编程语言标记您的帖子,您将获得更多点击率。您是否在问如何测试数组是否包含值
[1,2,3,…,n]
=
vs
=
再次罢工!好的,谢谢,我改变了。现在,它总是打印“这不是一个排列,”即使它是正确的,也不停止。无论发生什么,它似乎都默认为else。你能先清理一下你的代码吗?我看到缺少一个大括号,如果所有内容都是整齐的格式,可能更容易发现。你确定你的
arr
中有顺序值吗?为什么不在比较元素之前打印它们呢?我试过了,它似乎在比较它们,但即使它增加了1,它也默认为else子句。