我有一个x元素数组,我试图以5个元素间隔打印,因为用户按下一个按钮。如果我的数组是int a[14] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14};
,则示例显示为。
1,2,3,4,5
next
6,7,8,9,10
next
11,12,13,14
next
1,2,3,4,5
..
..
我应该如何解决这个问题?
答案 0 :(得分:1)
这应该可以解决问题:
for(i=0;i<x;i+=5)
{
for(j=i;((j<i+5) && (j<x));j++)
{
printf("%d,",a[j]);
}
//Wait for next character here
printf("\nnext\n");
}
编辑:修复了5的非倍数数组代码的问题。
答案 1 :(得分:0)
#include <stdio.h>
void interval_print(int *a, int *end, int len){
static int *start=NULL;
static int *current;
int i;
if(start != a)
current = start = a;
for(i=0;i<len && current != end;++i)
printf("%d%c", *current++, (i==len-1 ? '\n' : ','));
if(current == end){
printf("%d\n", *current);
current = start;
}
}
int main(){
int a[14] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14};
for(;;){
char ch;
interval_print(a, &a[13], 5);
printf("next\n");
printf("continue?\ninput y or n : ");
scanf(" %c", &ch);
if(ch == 'n' || ch == 'N')
break;
}
return 0;
}