xóa tất cả các số chính phương trong mảng một chiều các số nguyên?
Code:
#include"stdio.h"
void nhap(int a[],int &n);
void xuat(int a[],int n);
int ktchinhphuong(int k);
void xoavitri(int a[],int &n,int k);
void xoachinhphuong(int a[],int &n);
void main()
{
int a[100],n;
printf("nhap so phan tu n:");
scanf("%d",&n);
nhap(a,n);
printf("mang vua nhap la:\n");
xuat(a,n);
printf("mang sau khi xoa la:");
xoachinhphuong(a,n);
}
void nhap(int a[],int &n)
{
for(int i=0;i<n;i++)
{
printf("nhap thanh phan a[%d]:",i);
scanf("%d",&a[i]);
}
}
void xuat(int a[],int n)
{
for(int i=0;i<n;i++)
{
printf("%d",a[i]);
printf("\n");
}
}
int ktchinhphuong(int k)
{
for(int i=0;i<=k;i++)
if(i*i==k)
return 1;
return 0;
}
void xoachinhphuong(int a[],int &n)
{
for(int j=0;j<n;j++)
if(ktchinhphuong(a[j]))
xoavitri(a,n,j);
xuat(a,n);
}
void xoavitri(int a[],int &n,int k)
{
for(int i=k;i<n;i++)
{
a[i]=a[i+1];
}
n--;
}
VD:mảng la:1 4 8 9
mảng sau khi xóa là:
4 8