在我的代碼中,我只能輸入 1 個數字。如何輸入 4 個附加數字并確定它是否為質數,然后僅顯示質數。
#include<stdio.h>
int main()
{
int n, c = 2, f = 1;
printf("Enter a number:");
scanf("%d", &n);
while(c < n)
{
if(n%c == 0)
{
f = 0;
break;
}
c ;
}
if(f) printf("%d is prime number\n\n", n);
return 0;
}
這是我的輸出,使用上面的代碼:
Please enter a number:2
...Program finished with exit code 0
Press ENTER to exit console.
這是預期的輸出:
Please enter a number:1
Please enter a number:2
2 is a prime number.
Please enter a number:3
3 is a prime number.
Please enter a number:4
Please enter a number:5
5 is a prime number.
uj5u.com熱心網友回復:
假設您想檢查5數字是否為質數。
你遵循的方法,你只需要對其余的數字做同樣的事情。
為此,您可以運行一個額外的回圈。例如,
int inputSize = 5;
while(inputSize--)
{
printf("Enter a number:");
scanf("%d", &n);
// now check if the number is prime or not
}
注意:不要忘記在適當的位置初始化值。
示例代碼:
#include<stdio.h>
int main()
{
int inputSize = 5;
while(inputSize--)
{
int n, c = 2, f = 1;
printf("Enter a number:");
scanf("%d", &n);
while(c < n)
{
if(n%c == 0)
{
f = 0;
break;
}
c ;
}
if(f) printf("%d is prime number\n\n", n);
}
return 0;
}
查看以下資源以了解有關數字素數的更多資訊
https://www.studytonight.com/c-programs/c-program-to-check-whether-a-number-is-prime-or-not
uj5u.com熱心網友回復:
很明顯,您需要一個包含 5 次迭代的回圈來輸入 5 個數字。
由于素數的概念是為自然數定義的,因此您需要使用無符號整數型別來存盤輸入的數字。
并且您的代碼不正確,因為對于數字 0 和 1,它輸出它們是素數。
該程式可以如下所示。
#include <stdio.h>
int main( void )
{
const size_t N = 5;
for ( size_t i = 0; i < N; i )
{
printf( "Please enter a number: " );
unsigned int n = 0;
if ( scanf( "%u", &n ) == 1 )
{
int prime = n % 2 == 0 ? n == 2 : n != 1;
for ( unsigned int i = 3; prime && i <= n / i; i = 2 )
{
prime = n % i != 0;
}
if ( prime ) printf( "%u is a prime number.\n", n );
}
else
{
while ( getchar() != '\n' );
}
putchar( '\n' );
}
}
程式輸出可能看起來像
Please enter a number: 1
Please enter a number: 2
2 is a prime number.
Please enter a number: 3
3 is a prime number.
Please enter a number: 4
Please enter a number: 5
5 is a prime number.
uj5u.com熱心網友回復:
您需要回圈讀取數字。您還需要檢查輸入是否確實是一個數字。函式scanf回傳成功讀取值的數量。試試這個:
#include <stdio.h>
int main(void)
{
int c, ch, i, m, n;
i = 0;
while (i < 5) {
printf("Enter a number: ");
m = scanf("%d", &n);
if (m == 1) {
c = 2;
while ((c < n) && (n % c != 0)) {
c ;
}
if (c == n) {
printf("%d is prime number\n", n);
}
putchar('\n');
i ;
} else {
fprintf(stderr, "Not a number\n\n");
do { ch = getchar(); } while (ch != '\n');
}
}
return 0;
}
如果輸入無效,我們可以再給用戶一次機會。在這種情況下,我們首先需要讀取代表無效輸入的未讀字符。
另請注意,可以通過僅檢查最大為n 的平方根的數字來改進演算法。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/390851.html
上一篇:如何使用for回圈和append方法提示用戶將多個字串輸入添加到串列中
下一篇:在R中抓取多個頁面
