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); }
不知道问题出在哪里了,有用例没通过,但是我感觉没毛病啊!