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);
}
Bài liên quan
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,…
Bỏ hết biến toàn cục thôi có tham số rồi mà.
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 ạ
Hàm lonnhat khai báo biến n 2 lần.