-3

我有 4 个元素,比如说 p1、p2、p3、p4。它们的值都可以为 0 或除 0 以外的任何值。(低和高)。我需要等于 4 的计数器。当这些元素中的任何一个为高时,计数器应该为 -1。例如,用户输入以下值:p1=0、p2=1、p3=1、p4=0。最终值应该是 2。所以我尝试了 4 个元素的数组,以及一个计数器,每次一个元素不为 0(它很高)时都会减少值。此代码仅在我全部为 0 或全部为高时才有效。我能改变什么?

int main()
{
    int array[4]={0,0,0,0};
    
    printf("Enter value p1:");
    scanf("%d", &array[0]);
    
    printf("Enter value p2:");
    scanf("%d", &array[1]);
    
    printf("Enter value p3:");
    scanf("%d", &array[2]);
    
    printf("Enter value p4:");
    scanf("%d", &array[3]);
    
    int i=4;
    int j=0;
    if (array[0]!=0)
    {
      j++;
        
        if(array[1]!=0)
            {
                j++;
            
            if (array[2]!=0)
            {
                j++;
                
                if (array[3]!=0)
                {
                    j++;
                }
            }
            } }
    int z=i-j;
    
    printf("%d", z);
4

1 回答 1

0

尝试使用 for 循环,而不是嵌套的 if :

for (int index = 0; index < 4; index++){
  
   if (array[index] != 0){

       j++;

     }

}
于 2021-02-14T19:02:53.380 回答