01/10/2018, 15:37

Em có bài code bị lỗi [Error] declaration of 'int n' shadows a parameter các bác sửa giúp em với ạ

Em có bài tập trên trường mà giờ bị lỗi [Error] declaration of ‘int n’ shadows a parameter mong các bác giúp em với xem đã ổn chưa với ạ. Lần đầu post với học nên có gì các bác chỉ dẫn em với

#include<stdio.h>
#include<conio.h>
#define max 50
int a[max],n,m=0,k,tongvitri,vitri[max],a2[max],x;
void nhapdl(int [],int &n)
{
	printf("nhap n=	");
	scanf("%d",&n);
	for(int i=0;i<n;i++)
	{
		printf("nhap a[%d]=	");
		scanf("%d",&a[i]);
	}
}
void xuatmh(int a[],int n)
{
	printf("%d
",n);
	for(int i=0;i<n;i++)
	printf("%3d",a[i]);
}
void NN(int a[],int n)
{
	int i;
	int min=i;
	for(i=0;i<n;i++)
	{
		if(min>a[i]) min=a[i];
	}
	printf("
So nho nhat la:%d	",min);
}
void LN(int a[],int n)
{
	int j;
	int smax=j;
	for(j=0;j<n;j++)
	{
		if(smax<a[j]) smax=a[j];
	}
	printf("
So lon nhat la:%d	",smax);
}
void chanle(int a[],int n)
{
	int chan=0,le=0,tongchan=0,tongle=0;
	for(int i=0;i<n;i++)
	{
		if(a[i]%2==0)
		{
			chan++;
			tongchan=tongchan+a[i];
		}
		else
		{
			le++;
			tongle=tongle+a[i];
		}
	}
	printf("
Co %d so chan va tong so chan la %2d
",chan,tongchan);
	printf("
Co %d so le va tong so le la %2d
",le,tongle);
}
int lonnhat(int a[],int n,int vitri[],int &tongvitri)
{
	int n =a[0];
	int t=0;
	for(int i=0;i<n;i++)
	{
		if(a[i]>n) n=a[i];
	}
	int j=0;
	for (int i=0;i<n;i++)
	{
		if(a[i]==n)
		{
			t++;
			vitri[j]=i+1;
			j++;
		}
	}
	tongvitri =t;
	for(int i=0;i<tongvitri;i++)
	{
		printf("Max=%d o vi tri %d
",n,vitri[i]);
	}
}

void solan2(int [],int n,int a2[],int &m)
{
	int dem[max];
	for(int i=0;i<n;i++)
	{
		dem[i]=0;
		for(int j=0;j<n;j++)
		{
			if(a[i]==a[j]) dem[i]++;
		}
    }
    for(int i=0;i<n;i++)
    {
    	if(dem[i]==2)
    	{
    		a2[m]=a[i];
    		m++;
		}
	}
	for(int i=0;i<m;i++)
	printf("%d	",a2[i]);
}
void chenx(int a[],int &n,int x)
{
	int i=0;
	for(i=0;i<n;i++)
	{
		if(x>a[i]&&x<a[i+1])
		{
			for(int j=n;j>i+1;j--)
			{
				a[j]=a[j-1];
			}
			a[i+1]=x;
			break;
		}
	}
	printf("%d
",n+1);
	for(int i=0;i<n;i++)
	printf("%3d",a[i]);
}
void sort(int a[],int n)
{
	int temp;
	for(int i=0;i<n;i++)
	{
		for(int j=i+1;j<n;j++)
		{
			if(a[i]>a[j])
			{
				temp=a[i];
				a[i]=a[j];
				a[j]=temp;
			}
		}
	}
	printf("
%d
",n);
	for(int k=0;k<n;k++)
	printf("%d",a[k]);
}
int main()
{
	nhapdl(a,n);
	xuatmh(a,n);
	NN(a,n);
	LN(a,n);
	chanle(a,n);
	lonnhat(a,n,vitri,tongvitri);
	solan2(a,n,a2,m);
	sort(a,n);
	printf("
Nhap x:");
	scanf("%d",&x);
	chenx(a,n,x);
}
HK boy viết 17:41 ngày 01/10/2018

Bạn đổi tên đống biến toàn cục thành tên khác xem, như a thành A, n thành N,…

rogp10 viết 17:42 ngày 01/10/2018

Bỏ hết biến toàn cục thôi có tham số rồi mà.

Do Tuong Lan viết 17:41 ngày 01/10/2018

Em cảm ơn ạ hết bị lỗi rồi nhưng mà lúc chạy chương trình h nó bị cái a[-234668848] trông nó cứ sai sai thế nào ý ạ em có còn làm sai ở đâu nữa không ạ

Student X viết 17:48 ngày 01/10/2018

Hàm lonnhat khai báo biến n 2 lần.

Bài liên quan
0