diff --git a/list.c b/list.c
old mode 100644
new mode 100755
diff --git a/main.c b/main.c
index 6fdba572534dd219df2bd74305f3168cdebfb25f..ac4e09d44d60c313827cae85b928c7d48f2b9f0c 100755
--- a/main.c
+++ b/main.c
@@ -37,15 +37,18 @@ void delete (struct list *student_list) {
     scanf("%s", &array);
 
     struct list_elem *e;
-    for (e = list_begin(student_list); e != list_end(student_list); e = list_next(e)){
+    for (e = list_begin(student_list); e != list_end(student_list);) {
         struct student *s = list_entry(e, struct student, elem);
         /*if the two arrays are equal we delete it and free memory*/
-        if(strcmp(array, s->name)==0){
-            struct list_elem* temp = e;
-            list_remove(e);
+        if (strcmp(array, s->name) == 0) {
+            struct list_elem *temp = e;
+            e = list_next(e);
+            list_remove(temp);
             free(s->name);
             free(s);
+            break;
         }
+        e = list_next(e);
     }
 }
 
@@ -70,6 +73,7 @@ void quit (struct list *student_list) {
         free(s->name);
         free(s);
     }
+    exit(0);
 }
 
 int main() {