顺序表求素数
题目是:求n之内的素数,函数调用 SeqList* Sushu(int n) 的形式。
#include <stdio.h>
typedef int datatype;
#define max 100
typedef struct {
datatype sushu[max];
int last;
}SeqList;
SeqList* Sushu(int n)
{
SeqList *p;
int i, j, k = 0;
for (i = 1; i <= n; i++) {
for (j = 2; j <= n / 2; j++) {
if (i % j == 0)
break;
}
if (j > i / 2 && i != 1)
p->sushu[k++] = i;
}
p->last = k;
return p;
}
int main()
{
SeqList *p;
int n;
printf ("input n = ");
scanf("%d", &n);
p = Sushu(n);
for (int i = 0; i <= p->last; i++)
printf ("%d", p->sushu[i]);
return 0;
}
感觉错误很多,不知道怎么改。
素数?顺序表?
[解决办法]
SeqList *p;没分配内存,倒没发现其他问题
SeqList *p=(SeqList*)malloc(sizeof(SeqList));