头发 发表于 2020-11-25 19:14:42

为啥没输出呢?

#include<stdio.h>
void fun(int n)
{
        int i,j,k=0,l=0,h;
        for(i=3;i<(n/2);i+=2)
        {       
                for(j=2;j<i;i++)
                {
                        if(i%j==0)
                        {
                                k=1;
                                break;
                        }
                        k=0;                       
                }
                h=n-i;
                for(j=2;j<h;j++)
                {
                        if(h%j==0)
                        {
                                l=1;
                                break;
                        }
                        l=0;
                }
                if(k==0&&l==0) printf("%d %d",i,h);
                else continue;
        }
}
int main()
{
        int n;
        scanf("%d",&n);
        fun(n);
        return 0;
}

这题需要把一个6以上的偶数分成两个素数。
求大佬支援

wp231957 发表于 2020-11-25 20:51:02

你的print语句是放在了if后面,那么没有输出,可以反推if语句并没有被执行到

风过无痕1989 发表于 2020-11-25 20:56:54

#include <stdio.h>

#include<stdio.h>
void fun(int n)
{
        int i, j, k = 0, l = 0, h;
        for (i = 3;i<(n / 2);i += 2)
        {
                for (j = 2;j<i;j++)       // 错误在此,是 j++ ,不是 i++
                {
                        if (i%j == 0)
                        {
                                k = 1;
                                break;
                        }
                        k = 0;
                }
                h = n - i;
                for (j = 2;j<h;j++)
                {
                        if (h%j == 0)
                        {
                                l = 1;
                                break;
                        }
                        l = 0;
                }
                if (k == 0 && l == 0)
                        printf("%d %d", i, h);
                else continue;
        }
}
int main()
{
        int n;
        scanf_s("%d", &n);
        fun(n);
        return 0;
}
页: [1]
查看完整版本: 为啥没输出呢?