没有得到理想的输出。逻辑上有什么固有的错误吗?

时间:2016-08-26 23:30:16

标签: c arrays logic

输入描述没有测试后跟输入数组后跟数组的大小,输出要么给出给定数组中最大素数的-1或平方。 我提供代码,预期和实际输出以及使用的样本标准输入。

standard input:
3
5
1 4 6 8 10
3
2 2 9
2
156 13

expected output | getting
-1                -1
4                  4
169               -1


#include <stdio.h>
int main(){
int test,size;
int i,j;
scanf("%d\n",&test);
while(test>=1){
    scanf("%d\n",&size);
    int data[size],factors=0,max=0;
    for(i=0;i<size;i++){
        scanf("%d ",&data[i]);
        for(j=1;j<=data[i];j++){
            if(data[i]%j==0){
                factors+=1;
            }
        }
        if((factors==2) && (data[i]>max)){
            max=data[i];
        }
    }
    if(max>=2){
        printf("%d\n",max*max);
    }else{
        printf("%d\n",-1);
    }
    max=0;
    test-=1;
    }
}

1 个答案:

答案 0 :(得分:0)

确定调试并得到了答案。需要在下一个for循环中初始化因子。