diff --git a/ex3/main b/ex3/main
new file mode 100755
index 0000000000000000000000000000000000000000..34d3cebf516aabe1e10df4de7bde000cfd51f77c
Binary files /dev/null and b/ex3/main differ
diff --git a/ex3/main.c b/ex3/main.c
index b6b01d47073f87370f3b5ca573e93667e71907d3..c4cb0f7db0e43e8848b61d9306d43a42c5d90c6b 100644
--- a/ex3/main.c
+++ b/ex3/main.c
@@ -3,7 +3,7 @@
 #include <stdbool.h>
 
 typedef struct element{
-    int data;
+    float data;
     struct element* next;
     struct element* prev;
 } element;
@@ -27,20 +27,20 @@ element* dll_push(element* head, int data){
         head->prev = new;
         new->next = head;
     }
-    printf("created element with data = %d\n", new->data);
+    printf("created element with data = %f\n", new->data);
     return new;
 }
 
 void dll_print(element *head){
-    /*if(dll_empty){
+    if(dll_empty){
         printf("list is empty\n");
         return;
-    }*/
+    }
     while(head->next != NULL){
-        printf("%d->", head->data);
+        printf("%f->", head->data);
         head = head->next;
     }
-    printf("%d", head->data);
+    printf("%f\n", head->data);
 }
 
 void dll_destroy(element* head){
@@ -59,19 +59,20 @@ int main(){
     printf("entrez la liste  ");
     int length = 0;
     scanf("%d", &length);
-    int* tab = malloc(length*sizeof(int));
+    float* tab = malloc(length*sizeof(float));
     for(int i = 0; i< length; i++){
-        scanf("%d", &tab[i]);
+        scanf("%f", &tab[i]);
     }
     
     element* lst1 = dll_create();
     for(int i = 0; i< length; i++){
         lst1 = dll_push(lst1, tab[i]);
         if(lst1->next != NULL){
-            printf("lst1->next->data = %d\n", lst1->next->data);
+            printf("lst1->next->data = %f\n", lst1->next->data);
+            
         }
     }
-    dll_print(lst1);
+    
 
     dll_destroy(lst1);
 
diff --git a/ex3/main.o b/ex3/main.o
new file mode 100644
index 0000000000000000000000000000000000000000..4d9fe0eae570e6065fc5fc80fad2bfae999a9db0
Binary files /dev/null and b/ex3/main.o differ