C输出问题,关于数组

来源:百度知道 编辑:UC知道 时间:2024/05/21 10:14:23
int a[6]={1,2,4,5,8,10}
我只想要输出连着的元素,如上例1,2和4,5
怎么办,
代码最好写得具有通用性
说说思路也行

#define NUM 6

#include <stdio.h>
void main()
{
int a[6]={1,2,4,5,8,10} ;
int tf=0;
for(int i=0;i<NUM;i++)
{
if( (a[i+1]-a[i])==1 || tf==1)printf("%d,",a[i]);
tf=0;
if( (a[i+1]-a[i]==1))tf=1;
}
}
运行通过

在输出第n个前检查 n-1和 n+1的值就可以了。

#include<stdio.h>
void print(int *p,int n)
{int i;
for(i=n;i<=n+1;i++)printf("%d ",*(p+i));
return;}
/*如果要连续输出三个,就把i<=n+1改成i<=n+2,依次类推*/
main()
{int i,a[6]={1,2,4,5,8,10} ;
for(i=0;i<5;i++){
print(a,i);
printf("\n");}
}
运行结果:
1 2
2 4
4 5
5 8
8 10