【问题标题】:How to make counter that counts zeros?如何制作计数为零的计数器?
【发布时间】:2021-05-17 19:17:07
【问题描述】:

我有 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);

【问题讨论】:

  • 如果您需要代码方面的帮助,请向我们展示您的代码。
  • 请在问题中包含代码作为文本 (formatted in a code block),而不是作为任何人都无法复制/粘贴以进行测试的图像的链接。
  • 代码作为文本而不是图像
  • 1.检查来自scanf 的返回值 - 请参阅手册页。 2.如果printf中没有新行,则在后面添加fflush(stdout)以便显示。

标签: arrays c counter


【解决方案1】:

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

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

       j++;

     }

}

【讨论】:

    猜你喜欢
    • 2022-08-19
    • 2012-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-15
    • 1970-01-01
    • 2017-08-08
    相关资源
    最近更新 更多