我想创建一个固定大小的圆形数组,并且我想向它添加元素,然后应该能够打印它,当数组已满时,新添加的元素应该取代旧的元素C圆形阵列
例如
...
list_add('a'); //add element 'a'
list_add('b'); //add element 'b'
list_add('c'); //add element 'c'
list_print(); // should print 'a', 'b', 'c'
list_add('d'); //add element 'd'
list_add('e'); //add element 'e'
list_print(); // should print 'c', 'd', 'e'
...
起初我以为,它会很容易与一些技巧,但它给了我一个头痛:( 这里是我做过什么
#include <stdio.h>
#include <stdlib.h>
void list_add(char element);
void list_print();
char list[3] = {0, 0, 0};
int idx = 0;
int main(){
list_add('a');
list_add('b');
list_add('c');
list_print();
list_add('d');
list_add('e');
list_print();
return 0;
}
void list_add(char element){
list[idx] = element;
idx++;
if(idx==3) idx=0;
}
void list_print(){
int i;
for (i=0;i<3;i++) printf("%c\n", list[i]);
}
什么也正是你的问题?提示:使用模运算符。 – slnowak
@slnowak我打印它们时的问题,订单错误 – acclav
因为您只是遍历表格。你应该记住你当前的开始和结束位置在哪里。 – slnowak