素数判断和素数列表的输出,不能输出答案,求分析解答。来自c语言数组。
代码太乱了,你这是要用素数表的方式写素数判断么?不需要那么多代码
重写一个给你
#include <stdio.h>
#define N 25
int main()
{
int prime[N] = {2};
int count = 1, num = 3;
while (count < N)
{
int is_prime = 1;
for (int i = 0; i < count; i++)
{
if (num % prime[i] == 0)
{
is_prime = 0;
break;
}
}
if (is_prime)
{
prime[count++] = num;
}
num += 2;
}
for (int i = 0; i < N; i++)
{
printf("%d ", prime[i]);
}
return 0;
}
截图
13行是个死循环,因为x为0,所以循环结束条件永远不成立。
你要计算素数,先了解基本规则
循环要从2开始,到i*i<=n结束,不要瞎写
1、定义结构体
格式:
struct 结构体{
属性列表
};
比如:定义一个结果体,目的是为了描述一个工人
struct worker {
char id[10];
char name[10];
char sex[10];
int pay;
}
2、如何来定义结构体变量
1)上方那样定义的只是结构体的类型,并不是变量
比如:
int a;//其中int 是类型 而a是变量
2)在C程序里面有几种类型是C已经为我们做好的,我们只要拿来使用就行了,但是结构体类型在C程序里面没有,就需要用户自己来定义。
3)下方程序当中struct worker是定义的类型
struct worker {
char id[10];
char name[10];
char sex[10];
int pay;
}
4)定义结构体变量有三种方式
(a)在定义类型的时候就定义结构体变量,这样的变量就相当于全局变量。
(b)在定义结构体类型之后,再定义结构体变量。
(c)可以在定义结构体类型 的时候,省略结构体类型名 (一般不用)
struct {//定义结构体类型
char id[10];//定义工号
char name[10];//定义姓名
char sex[10];//定义性别
int pay;//定义基本工资
},wi,w2;//此处的分号不能少
(d)可以通过typedfed这个关键字,为结构体变量取别名别名一般用大写