【问题标题】:How can I print conditional statement in an array如何在数组中打印条件语句
【发布时间】:2021-06-04 19:48:59
【问题描述】:

我正在尝试从数组中识别素数和复合值。但是在条件语句中,它只打印 if value 而不是 else。

#include <stdio.h>

int main()
{
    int a[5], i, j;
    for (i = 0; i < 5; i++)
    {
        scanf("%d", &a[i]);
    }
    for (i = 0; i < 5; i++)
    {
        for (j = 2; j <= a[i] / 2; j++)
        {
            if (a[i] % j == 0)
            {
                printf("%d is not a prime number\n", a[i]);
                break;
            }
            else
            {
                printf("%d is a prime number\n", a[i]);
                break;
            }
        }
    }
    return 0;
}

【问题讨论】:

    标签: c loops conditional-statements


    【解决方案1】:

    只有当所有for (j = 2; j &lt;= a[i] / 2; j++) 的条件a[i] % j == 0 为假时,该数字才是质数。您需要做的是:

    #include <stdio.h>
    
    int isNumberPrime(int value){
        if(value == 1) return 0;
        for (int j = 2; j <= value / 2; j++)
            if (value % j == 0)
                return 0;
        return 1;
    }
    
    int main()
    {
        int a[5];
        for (int i = 0; i < 5; i++)
        {
            scanf("%d", &a[i]);
        }
        for (int i = 0; i < 5; i++)
        {    
            if(isNumberPrime(a[i]))
               printf("%d is a prime number\n", a[i]);
            else
               printf("%d is not a prime number\n", a[i]);
        }
        return 0;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-11
      • 1970-01-01
      • 2017-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-23
      相关资源
      最近更新 更多