在C中查找连续整数的问题

时间:2019-04-26 12:01:55

标签: c

代码的主要问题是,最终,每次没有连续整数时,程序都会显示出来。

首先,我通过研究如何更正“ if”语句,然后修复代码上的一些小错误,试图找到解决该问题的方法,但是我找不到任何错误。代码在下面

#include <stdio.h>
int main() {

    int a,i;
    int A[10];
    for(i=0; i<=9; i++) {
        scanf("%d",&a);
        A[i]=a;
    }
    if ((A[i+1]-A[i]==1)||(A[i+1]-A[i]==-1)) {
        printf("{%d,%d}",A[i+1],A[i]);
    } else {
        printf("Den yparxoun diadoxikoi arithmoi");
    }
    return 0;
}

那么,预期结果将显示成对的连续整数(如果存在)。例如,如果我写整数4,-1,9,8,3,5,-21,6,7,8,程序应打印{9,8} {6,7} {7,8}。实际结果是每次显示都没有连续的整数。

预先感谢您的帮助。

2 个答案:

答案 0 :(得分:4)

这应该做到:

#include <stdio.h>
int main() {

int a,i;
int A[10];
int c =0;
for(i=0; i<=9; i++) {
    scanf("%d",&a);
    A[i]=a;
}
for(i=0;i<=9;i++)
{
if(A[i+1]==10)
{
break;
}

else if ((A[i+1]-A[i]==1)||(A[i+1]-A[i]==-1)) 
{
    printf("{%d,%d}",A[i],A[i+1]);
    c=1;
} 
}

if(!c)

    printf("Den yparxoun diadoxikoi arithmoi");



return 0;

}

答案 1 :(得分:2)

您应该使用循环,通过添加代码如下所示的循环来找出一对

#include <stdio.h>
int main() 
{
    int a,i,flag=0;
    int A[10];

    for(i=0; i<=9; i++) 
    {
        scanf("%d",&a);
        A[i]=a;
    }

    for(i=0;i<9;i++){
        if ((A[i+1]-A[i]==1)||(A[i+1]-A[i]==-1)) 
        {
            printf("{%d,%d}",A[i+1],A[i]);
            flag=1;
        } 
    }

    if(!flag)
        printf("Den yparxoun diadoxikoi arithmoi");

    return 0;
}