我正在编写一个函数,一次从数组中打印10个项目,之后用逗号分隔,除了行中的最后一项。
我可以通过使用if语句将其转到10处没有逗号的新行,但是当最后一行中少于10个项目时,它仍会打印逗号。
任何人都可以提出解决这个问题的暗示吗?
当前无效代码:
if (count < size-1){
printf("%d%s", sequence[i],", ");
count++;
}
else if (count == size-1){
printf("%d%s", sequence[i],"\n");
count = 1;
示例: 需要这个:
a, b, c, d, g, j, o, p, q, q, j
k, j, f, a, q
目前得到这个:
a, b, c, d, g, j, o, p, q, q, j
k, j, f, a, q, <--- this last comma should not be here
答案 0 :(得分:2)
您当前的逻辑是“如果索引小于9,则打印逗号”。如果索引小于9,和索引不是数组中的最后一个元素,那么你的逻辑应“打印逗号”
工作代码:
int i;
for (i = 0; i < numberOfItemsInSequence && i < numberOfItemsToPrint; i++) {
printf("%d", i);
if (i < numberOfItemsInSequence - 1 && i < numberOfItemsToPrint - 1) {
printf(",");
} else {
printf("\n");
}
}
答案 1 :(得分:1)
要修复的示例
#include <stdio.h>
int main(void){
int sequence[] = {
'a','b','c','d','g','j','o','p','q','q',
'j','k','j','f','a','q'
};
int wrap_size = 10;
int i, count=0;
for(i=0; i< sizeof(sequence)/sizeof(*sequence); ++i){
if(count++)
printf(", ");
printf("%c", sequence[i]);
if(count == wrap_size){
putchar('\n');
count = 0;
}
}
if(count)
putchar('\n');
return 0;
}