Code bài tập về mảng 1 chiều bị lỗi too few arguments to function

Mọi người ơi giúp e giải đáp những lỗi ở dưới trong bài tập này về mảng ạ,e cám ơn
Code của e:

#include <stdio.h>
#include <conio.h>
void InputArr(int Arr[],int N);
void OutputArr(int Arr[],int N);
void ThemPhanTu(int Arr[],int &N,int ViTri,int GiaTri);
void XoaPhanTu(int Arr[],int &N,int ViTri);
int main()
{
	int Arr[100];
	int N,ViTri,GiaTri;
	do
	{
		printf("nhap N phan tu mang:");
		scanf("%d",&N);
	}while(N<(-100) && N>100);
    printf("Nhap cac phan tu cua mang");
    InputArr(Arr,N);
    printf("In cac phan tu trong mang");
    OutputArr(Arr,N);
    printf("Nhap so can them");
    scanf("%d",&GiaTri);
    printf("nhap vi tri muon chen");
    scanf("%d",&ViTri);
    printf("nhap so can xoa");
    scanf("%d",&GiaTri);
    printf("nhap vi tri muon xoa");
    scanf("%d",&ViTri);
    printf("Mang sau khi them");
    ThemPhanTu(Arr,N,ViTri);
    printf("Mang sau khi xoa");
    XoaPhanTu(Arr,N,ViTri);
}
void InputArr(int Arr[],int N);
{
	for(int i=0;i<N;i++)
	{
		printf("A[%d]",i);
		scanf("%d",%Arr[i]);
	}
}
void OutputArr(int Arr[],int N);
{
	for(int i=0;i<N;i++)
	{
		printf("%4d",Arr[i]);
	}
}
void ThemPhanTu(int Arr[],int &N,int ViTri,int GiaTri);
{
   if(ViTri<0)
   ViTri=0;
   else if(ViTri>N)
   ViTri=N;
   for(int i=N;i>ViTri,i++)
   {
   	   Arr[i]=Arr[i-1];
   }
   a[ViTri]=GiaTri;
   N++;
}
void XoaPhanTu(int Arr[],int &N,int ViTri);
{
   for(int i = pos; i < n - 1; i++)
   {
   	    a[i] = a[i+1];
   }
    --n;
}	
In function 'int main()':
[Error] too few arguments to function 'void ThemPhanTu(int*, int&, int, int)'
[Error] expected unqualified-id before '{' token
 void ThemPhanTu(int Arr[],int &N,int ViTri,int GiaTri); [Note] declared here
[Error] expected unqualified-id before '{' token

Lỗi này ở void InputArr sau int main() ạ.

1 Like

format code lại bạn ơi @@

3 Likes
  1. Bạn gọi hàm ThemPhanTu() bị thiếu tham số. Hàm cần 4 tham số, bạn chỉ truyền 3. Thiếu tham số cuối: GiaTri.
  2. Phần triển khai của các hàm, bỏ ; ở cuối định danh hàm đi.
    Ví dụ:
void InputArr(int Arr[], int N) // không có ; ở đây.
{
    // Trong hàm.
}
Viết thế này vẫn nhìn ra được.

Chuẩn:

int main(){
    int i = 0;
    scanf("%d", &i);
    printf("i = %d", i);
    return 0;
}

Hiện giờ, các trình soạn thảo hầu hết hỗ trợ “nối” các cặp ngoặc tương đồng với nhau.

Viết kiểu cũ (lúc mình mới học):

int main()
{
    int i = 0;
    scanf("%d", &i);
    printf("i = %d", i);
    return 0;
}

Kiểu này dễ nhận dạng các cặp ngoặc nhọn với nhau. Nhưng tốn thêm 1 dòng, viết nhiều, cuộn mà mệt.

Kiểu lung tung:

int main()
    {int i=0;
scanf("%d",&i);
    printf("i = %d",i);return 0;}

Thua luôn!

4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?