mình chạy chương trình thì ko có lỗi, nhưng không hiện được lệnh printf số hoàn thiện nhỏ nhất ai chỉ mình cách fix với, copy đi mấy phần mềm lập trình C khác nhau đều không ra.
#include"stdio.h"
void nhapmang(int a[],int &n)
{
int i;
printf("nhap kich thuoc mang:");
scanf("%d",&n);
printf("nhap cac phan tu mang\n");
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
}
void xuatmang(int a[],int n)
{
int i;
for(i=0;i<n;i++)
printf("%3d",a[i]);
}
int maxmang(int a[],int n)
{
int i,max=a[0];
for(i=1;i<n;i++)
if(a[i]>max)
max=a[i];
return max;
}
int maxchan(int a[],int n)
{
int i,max=0;
for(i=0;i<n;i++)
if(a[i]%2==0&&a[i]>max)
max=a[i];
return max;
}
int ktcp(int n)
{
int i=1;
if(n==1) return 1;
while(i<n)
if(i*i==n)
return 1;
else
i++;
return 0;
}
int mincp(int a[],int n)
{
int i,min2,cp2=0;
for(i=0;i<n;i++)
if(ktcp(a[i])==1)
{
min2=a[i];
cp2++;
}
for(i=0;i<n;i++)
if(ktcp(a[i])==1&&a[i]<min2)
min2=a[i];
if(cp2!=0)
return min2;
return 0;
}
int ktsht(int x)
{
int i=1,k=0;
while(i<x)
if(x%i==0)
k=k+i;
else
i++;
if(k==x)
return 1;
return 0;
}
int minht(int a[], int n)
{
int i,d=0,min;
for(i=0;i<n;i++)
if(ktsht(a[i])==1)
{
min=a[i];
d++;
}
for(i=0;i<n;i++)
if(ktsht(a[i])==1&&a[i]<min) min=a[i];
if(d!=0)
return min;
return -1;
}
main()
{
int a[50],n;
nhapmang(a,n);
printf("\n mang vua nhap la");
xuatmang(a,n);
printf("\nso chinh phuong nho nhat la: %d\n",mincp(a,n));
printf("so lon nhat mang la: %d\n",maxmang(a,n));
printf("so hoan thien nho nhat la: %d\n",minht(a,n));
//printf("so doi xung lon nhat la%d",maxdx(a,n));
//printf("so cp nho nhat la %d",mincp(a,n));
//printf("so ht nho nhat la: %d",minht(a,n));
//printf("so nt nho nhat la %d",minnt(a,n));
}

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