C 求素数的问题

来源:百度知道 编辑:UC知道 时间:2024/05/10 08:34:11
1:
#include <stdio.h>
#include <conio.h>
#include <windows.h>
void fun ( int *pt )
{

}
void NONO( )
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,
输出数据,关闭文件。 */
int *ptt,aa[50];
FILE *fp;

ptt=aa;
fp = fopen("bc6.out", "w") ;
fun(ptt);
while(*ptt)
fprintf(fp," %d\n",*ptt++);
fclose(fp) ;
}
main( )
{
int *pointer,a[30];
pointer=a;
system("cls");
fun(pointer);
printf("The result is :\n");
while(*pointer)
printf ( "%d ",*pointer++ );
NONO( );
}
我的答案是:

int i,j;
for (i=2;i<100;i++)
{for (j=2;j<i;j++)
if (i%j==0) break;
if (i==j)
{*pt=i; pt++;}
}
pt=0;

可是出现的结果不仅有要求的数 并且还有这些数的地址
这是为什么呢 ?? 怎么修改才可以把 这些数的地址给去掉啊 ??
2:

把最后一句pt=0改成*pt=0就行了.

当然可以,这个程序不就已经把所有素数保存到数组a中了么

完全可以保存起来的。。。没看到你的fun函数
不过告诉你一个小技巧。。
再用scanf()接受完数据后。。后面跟个 getch()可以清空回车和换行的数据