Arrays 如何创建存储素数的数组?
用户给定8个整数的数组, 程序应该打印出输入的每个素数。 程序输入一些数字后停止,我不知道为什么。 你能告诉我我做错了什么吗? 代码:Arrays 如何创建存储素数的数组?,arrays,c,primes,Arrays,C,Primes,用户给定8个整数的数组, 程序应该打印出输入的每个素数。 程序输入一些数字后停止,我不知道为什么。 你能告诉我我做错了什么吗? 代码: #包括 #包括 #包括 int main() { 常数int N=8; int i,j,count,x; int-arr[N]; 整数素数[N]; j=2; 对于(i=0;i
#包括
#包括
#包括
int main()
{
常数int N=8;
int i,j,count,x;
int-arr[N];
整数素数[N];
j=2;
对于(i=0;i
如果用户输入的整数小于上一个整数,则程序将进入无限循环。您可能想在else子句中初始化j,就在do-while循环之前
还请注意,您应该检查scanf的返回值,以确保实际输入的是整数。如果用户输入的整数小于上一个整数,则程序将进入无限循环。您可能想在else子句中初始化j,就在do-while循环之前
还要注意的是,您应该检查scanf的返回值,以确保实际输入了整数。我使用booleen函数检查数组中的元素是否为素数,然后像这样填充素数数组:
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
bool Prime(int);
int main()
{
int N;
do
{
printf("Give me the number of numbers :");
scanf("%d",&N);
}while(N<1);//in your array must be minimum 1 element
int prime[N];
int arr[N];
int j=0;
for(int i=0;i<N;i++)
{
do
{
printf("Enter a number %d:",i+1);
scanf("%d", &arr[i]);
}while(arr[i]<0); //you can write while(arr[i]>1) and you just write if(Prime(arr[i])==true)
if(arr[i]!=1&&arr[i]!=0&&Prime(arr[i])==true)
{
prime[j]=arr[i];
j++;
}
}
printf("\n\n");
for(int p=0;p<j;p++)
{
printf("%d th prime number:%d\n",p+1,prime[p]);
}
return 0;
}
bool Prime(int n)
{
for(int i=2;i<=(n/2);i++)
{
if(n%i==0)
{
return false;
}
}
return true;
}
#包括
#包括
#包括
布尔素数(int);
int main()
{
int N;
做
{
printf(“给我数字:”);
scanf(“%d”和“&N”);
}(N我使用booleen函数检查数组中的元素是素数还是否,然后我像这样填充素数数组:
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
bool Prime(int);
int main()
{
int N;
do
{
printf("Give me the number of numbers :");
scanf("%d",&N);
}while(N<1);//in your array must be minimum 1 element
int prime[N];
int arr[N];
int j=0;
for(int i=0;i<N;i++)
{
do
{
printf("Enter a number %d:",i+1);
scanf("%d", &arr[i]);
}while(arr[i]<0); //you can write while(arr[i]>1) and you just write if(Prime(arr[i])==true)
if(arr[i]!=1&&arr[i]!=0&&Prime(arr[i])==true)
{
prime[j]=arr[i];
j++;
}
}
printf("\n\n");
for(int p=0;p<j;p++)
{
printf("%d th prime number:%d\n",p+1,prime[p]);
}
return 0;
}
bool Prime(int n)
{
for(int i=2;i<=(n/2);i++)
{
if(n%i==0)
{
return false;
}
}
return true;
}
#包括
#包括
#包括
布尔素数(int);
int main()
{
int N;
做
{
printf(“给我数字:”);
scanf(“%d”和“&N”);
}当(N@Augustkarlstorm现在可以工作,但即使没有输入,也会在第四个素数中打印出一个0。例如:第1个素数:12个素数:7个第3个素数:73个第4个素数:0个第5个素数:5@NomeAcaso解决程序故障的最简单方法是插入打印语句,该语句在c语言中的不同位置打印变量ode。@Augustkarlstorm现在可以工作,但即使没有输入,也会在第四个素数中打印出一个0。例如:第1个素数:12个素数:7个素数:73个第4个素数:0个第5个素数:5@NomeAcaso解决程序故障的最简单方法是插入print语句,该语句在程序中的不同位置打印变量代码。感谢这个解决方案,我以前想过使用函数,但它不起作用,顺便说一句,我可以不使用它,我只需要更改if语句中的索引。感谢这个解决方案,我以前想过使用函数,但它不起作用,顺便说一句,我可以不使用它,我只需要更改索引I在if语句中。