我想創建一個固定大小的圓形數組,並且我想向它添加元素,然後應該能夠打印它,當數組已滿時,新添加的元素應該取代舊的元素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