代码的主要问题是,最终,每次没有连续整数时,程序都会显示出来。
首先,我通过研究如何更正“ 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}。实际结果是每次显示都没有连续的整数。
预先感谢您的帮助。
答案 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;
}