Nhờ giúp sửa lỗi code

Mọi người giúp em sửa bài code này với ạ

#include <stdio.h>
#include <conio.h>
void hoanvi(int *x,int *y);//khai bao nguyen mau ham
void nhapmang(int a[],int *n);
void inmang(int a[],int n);
void avg(int a[],int n,int i);//avg la Giatritrungbinh
int max(int a[],int n);
int min(int a[],int n);
int Timkiem(int a[],int n,int x);
int dem (int a[],int n,int i);
void sapxepgiam(int a[],int n);
void tongmang(int sum,int a[],int n,int i);


int main(){


{
	int a[50];
	int max,k;
	// max chua gia tri lon nhat va k chua vi tri lon nhat
	int i,j,n,xTimkiem;
	int sum;
	float avg;// avg là gia tri trung binh 
	int dem=0;
	// so phan tu cua mang
	nhapmang(a,&n);
	printf("\nMang vua nhap la:\n");
	
	inmang(a,n);
	printf("\nNhap phan tu can tim:");
	scanf("%d",&xTimkiem);
	
	if(Timkiem(a,n,xTimkiem))
	{
		printf("\nGia tri %d xuat hien trong mang tai cac vi tri: ",xTimkiem);
		for(i=0;i<n;i++)
		{
			if(a[i]==xTimkiem)
			printf("%3d",i);
		}
	}
	else
	        printf("\nKhong co phan tu %d trong mang",xTimkiem);
	        
{
 for(i=0;i<n;i++)
   { 
   if(a[i]==xTimkiem)
     { 
	      printf("%3d", i); 
          dem++;
     } 
   } 
   {
  if ((dem>0))
{
printf("\n so phan tu thoa man dieu kien la : %3d",dem);
}
 else if ((dem<0))
 {
 printf("\n khong co phan tu thoa man dieu kien trong mang");
 }
 else if ((dem!=0))
 {
 printf("\n khong co phan tu %3d trong mang ",xTimkiem);
 }
}

//sap xep cac phan tu trong mang
	printf("\nCac phan tu sau khi sap xep giam dan \n");
	sapxepgiam(a,n);
	inmang(a,n);

}
}





//ham hoan vi
void hoanvi(int *x,int *y);
{
	int tam;
	int *x,*y;
	
	tam= *x;
	*x = *y;
	*y = tam;
}

//In mang ra man hinh
void inmang(int a[],int n);
{
	int i,n;
	int a[50];
	for(int i=0;i<n;i++)
	{
		printf("%5d",a[i]);
	}
}

//Sap xep
void sapxepgiam(int a[],int n);
{
	int n,i,j,k;
	int a[50];
	for(int i=0;i<n-1;i++)
	{
		k=i;
		for (j=i;j<n;j++)
		{
			if(a[j]>a[k])
			k=j;
		}
		hoanvi(&a[k],&a[i]);
	}
}
//TONGMANG
{
int n,i,sum=0;
int a[50];

	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%d",&a[i]);
	}
	for(i=0;i<n;i++)
	{if (a[i]>=0)
		sum += a[i];
	 else
	 	printf("%3d",sum);
	}
	return 0;
}
//GIATRITRUNGBINH
void avg(int a[],int n,int i);
{
	int sum;
	int avg;
	int a[50];
	int i;
	sum = avg = 0;
	printf ("Tinh gia tri trung binh cua mang: \n\n");
	for (i=0;i<50;i++);
	{sum += a[i];} // sum=sum+a[i];
	printf("Tong cac phan tu cua mang la:%3d",sum);
	avg = float(sum)/i;// giatriTB= tong cac phan tu trong mang chia cho tong so gioi han mang
	printf("Gia tri trung binh cua mang la: %.2f", avg);
}	

//NHAP MANG
void nhapmang(int a[],int *n);
{
	int n;
	int i;
	int a[50];
	printf("Nhap so phan tu cua mang:");
	scanf("%d",n);
	{
	   for (int i=0;i<n;i++)
	{
		  printf("\na[%d]=",i);
		  scanf("%d",&a[i]);
	}
    }
}

//INMANG
void inmang(int a[],int n);
{
	int n;
	int a[50];
	printf("Phan tu trong mang vua nhap:");
	scanf("%d",n);
}


//MAX
int max(int a[], int n);
{
int a[50];
int n,i;
    int max = a[0];
    {
    for (int i = 1; i < n; i++)
        if (max < a[i])
            {
			max = a[i];}
    return max;
    }
}

//MIN
int min(int a[], int n);
{
	int a[50];
	int n,i;
    int min = a[0];
    {
    for (int i = 1; i < n; i++)
        if (min > a[i])
            min = a[i];
    return min;
}
}

int main(){
    int a[50];
    int n;
    {
	
    printf("\nNhap n = ");
    scanf("%d", &n);
    nhap(a,&n);
    printf("\nMax = %d", max(a, n));
    printf("\nMin = %d", min(a, n));
}
    return 0;
}


   
//Timkiem
{
int kt=0;
int n,i;
int a[50];
int x; // x la phan tu can tim
    for(int i=0;i<n;i++)
         {
    if (a[i]==x)
    {
	    kt=1;
    }
         }
 return kt;
}

//IN RA SO LON HON GIA TRI TRUNG BINH
{
	int a[50];
	int n,i;
	int avg;
	inmang(a,n);
if(a[i]>avg)
 printf("\nPhan tu co gia tri lon hon gia tri trung binh la %d ");
else
printf("\nKhong co phan tu nao lon hon gia tri trung binh!!");

}
return 0;
}
In function 'int main()':
Line Col
210	11		[Error] a function-definition is not allowed here before '{' token
255	1	        [Error] expected '}' at end of input

Định dạng code lại đi bạn.

147|	for (i=0;i<50;i++);
148|	{sum += a[i];} // sum=sum+a[i];

Thừa dấu chấm phảy cuối for() rồi kìa. :kissing:

150|	avg = float(sum)/i;// giatriTB= tong cac phan tu trong mang chia cho tong so gioi han mang

Phải là (float)sum / i chứ, mà sao k chia cho 50 luôn mà chia i làm gì. @@

prog.c:151:45: warning: format '%f' expects argument of type 'double', but argument 2 has type 'int' [-Wformat=]
  151 |  printf("Gia tri trung binh cua mang la: %.2f", avg);
      |                                          ~~~^   ~~~
      |                                             |   |
      |                                             |   int
      |                                             double
      |                                          %.2d

Dùng sai format rồi kìa. :kissing:


Còn khá nhiều. Vấn đề của bạn là không biết (thật ra là lười) đọc lỗi và sửa lỗi do compiler báo. :slight_smile:

Bạn vô đây coi từng từng dòng lỗi mà compiler báo mà sửa nè.

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