-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。ただし、その戻り値を変数に取り込んで、それが 0、1、2、3、または 4 であるかどうかを確認できるようにする必要があります。

素数を特定する方法については、これまでに試したコードを新しい質問で示してください。同様に、マルチスレッドは別の問題です。

于 2015-09-22T07:58:17.290 に答える
0

最初の条件は問題ありません。たとえば、整数以外の値が入力された場合はscanf返さ4れないため、間違った入力の各ケースをカバーします。

ただし、変数に何が含まれているかを確認するには、変数を確認する必要があります。

于 2015-09-22T08:00:13.213 に答える