-4

我正在解决一个问题,以从一组 4 个整数中计算 LCM 和最高素数。我在解决 scanf 异常时遇到了麻烦,例如

  1. 一些输入不是整数
  2. 如果有更多/少于 4 个输入
  3. 如果输入未使用逗号或
  4. 如果输入中没有素数

我尝试使用以下代码:

if((scanf("%d,%d,%d,%d", &num1,&num2,&num3,&num4))!=4) /* for 4 input verification */

if((scanf("%d,%d,%d,%d", &num1,&num2,&num3,&num4))<4) /* for non-integer inputs */

if((scanf("%d,%d,%d,%d", &num1,&num2,&num3,&num4))<4) /* used comma in between %d for comma check, but how to generate error if input is without commas. */

以及如何识别素数以及如何使用多线程实现程序。

4

2 回答 2

0

您的第一个条件很好,例如是否输入了除整数以外的任何内容而不是scanf返回4,因此它将涵盖每种错误输入的情况。

但是您需要检查变量以找出它包含的内容。

于 2015-09-22T08:00:13.213 回答
0

您的第一段代码几乎是正确的:您应该检查返回的值以了解scanf. 但是您可能应该在一个变量中捕获该返回值,以便您可以确定它是 0、1、2、3 还是 4。

至于如何识别素数,请向我们展示您迄今为止在一个新问题中尝试过的代码。同样,多线程是一个单独的问题。

于 2015-09-22T07:58:17.290 回答