[英]How to discard scanf errors and identifying highest prime number from 4 input integers using multi threading
我正在解決一個問題,從一組 4 個整數計算 LCM 和最高質數。 我在解決異常 wrt scanf 時遇到了麻煩,例如
我嘗試使用以下代碼:
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. */
以及如何識別素數以及如何使用多線程實現程序。
您的第一段代碼幾乎是正確的:您應該檢查返回的值以了解scanf
讀取了多少個值。 但是您可能應該在變量中捕獲該返回值,以便您可以確定它是 0、1、2、3 還是 4。
至於如何識別素數,請在新問題中向我們展示您迄今為止嘗試過的代碼。 同樣,多線程是一個單獨的問題。
您的第一個條件很好,例如,如果除了整數之外輸入了任何內容, scanf
不會返回4
,因此它將涵蓋每種錯誤輸入的情況。
但是您需要檢查變量以找出它包含的內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.