int ispf(int num)
{
int i;
for(i=1;i<num;i++)
{
if(i*i==num)
return 1;
}
return 0;
}
int* deletenum(int *arr,int b,int len) // //b是要删除的数组里面的元素,len是数组的长度
{
int i=0,j=0;
for(i=0;i<len;i++)
{
if(arr[i]==b)
{
for(j=i;j<len-1;j++)
{
arr[j]=arr[j+1];
i--;
}
len-=1; //以免重复输出最后一个数
}
}
return arr;
}
int main() {
int n;
scanf("%d",&n);
int *arr=(int *)malloc(n*sizeof(int));
int i,max;
for(i=0;i<n;i++)
scanf("%d",&arr[i]);
for(i=0;i<n;i++)
{
max=arr[0];
if(ispf(arr[i])) //如果这个数是平方数那么我想把他从数组里面删除,剩下的不是平方数的比大小
{
int b=arr[i]; //把这个平方数给b
deletenum(arr,b,n); //b是要删除的数组里面的元素,n是数组的长度
}
if(arr[i]>max)
max=arr[i];
}
printf("%d\n",max);
}
不知道问题出在哪里了,有用例没通过,但是我感觉没毛病啊!

京公网安备 11010502036488号