01/10/2018, 10:17
Lỗi mà không sao giải thích được
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int menu()
{
int choice;
printf("1 = Add a student
");
printf("2 = Remove a student
");
printf("3 = Search a student
");
printf("4 = Sort and Print the list of student
");
printf("5 = Quit
");
scanf("%d", &choice);
return choice;
}
void add(char list[][100], int *soluong)
{
printf("Enter a name's student:
");
fflush(stdin);
gets(list[*soluong]);
strupr(list[*soluong]);
(*soluong)++;
}
void remove(char list[][100], int *soluong)
{
printf("Enter the position of student you want to remove:
");
int pos;
scanf("%d",&pos);
if (pos<0 || pos>(*soluong)) exit();
else
for(int i=pos; i<*soluong-1; i++)
list[i] = list[i+1];
(*soluong)--;
}
void search(char list[][100], int soluong)
{
printf("Enter a name you want to search:
");
char s[100] = "";
fflush(stdin);
gets(s);
int f = 0, pos = -1;
for (int i = 0; i<soluong; i++)
if(strcmp(list[i], s)==0)
{
f=1;
pos=i;
}
if (f) printf("Found: %i", pos);
else printf("Not Found!");
}
void print(char names[][100], int n)
{
char t[31];
for(int i=0; i<n-1; i++)
for(int j=n-1; j>i; j--)
if (strcmp(names[j], names[j-1])<0)
{
strcpy(t, names[j]);
strcpy(names[j], names[j-1]);
strcpy(names[j-1], t);
}
for(int i=0; i<n-1; i++)
puts(names[i]);
}
int main()
{
char names[5][100] =
{
"Nguyen Thanh Luan",
"Nguyen Duy Tien",
"Lam Thanh Phat",
"Phan Van Tri",
"Nguyen Thanh Trung"
};
int userchoice;
int soluong = 5;
do
{
userchoice = menu();
switch(userchoice)
{
case 1: add(names, &soluong); break;
case 2: remove(names, &soluong); break;
case 3: search(names, soluong); break;
case 4: print(names, soluong); break;
default: exit(0);
}
}
while(userchoice>0 && userchoice<5);
return 0;
}
Đây là full code của em:
Nó bị lỗi chỗ hàm remove, em không biết nó sai như thế nào nữa
Bài liên quan
lỗi mà bạn gặp ở đây:
thiếu arguements -> thêm số 0
-> sử dụng hàm strcpy
Tôi cảm ơn bạn rất nhiều !
không có gì, nhưng mình nghĩ bạn nên tạo function prototype trước thì trông đầu đoạn code của bạn sẽ trông dễ đọc hơn.