#include <stdio.h>
void fun( int m, int *k, int xx[] )
{
int i,j,n=0;
for(i=4;i<m;i++)
{
for(j=2;j<i;j++)
if(i%j==0)
break;
if(j<i)
xx[n++]=i;
}
*k=n;
}
main()
{
int m, n, zz[100];
void NONO ( );
printf( "\nPlease enter an integer number between 10 and 100: " );
scanf( "%d", &n );
fun( n, &m, zz );
printf( "\n\nThere are %d non-prime numbers less than %d:", m, n );
for( n = 0; n < m; n++ )
printf( "\n %4d", zz[n] );
NONO();
}
void NONO()
{
/* 請在此函式內打開檔案,輸入測驗資料,呼叫 fun 函式,
輸出資料,關閉檔案。 */
int m, n, zz[100];
FILE *rf, *wf ;
rf = fopen("in.dat","r") ;
wf = fopen("out.dat","w") ;
fscanf( rf, "%d", &n );
fun( n, &m, zz );
fprintf(wf, "%d\n%d\n", m, n );
for( n = 0; n < m; n++ )
fprintf(wf, "%d\n", zz[n] );
fclose(rf) ;
fclose(wf) ;
}
uj5u.com熱心網友回復:
#include <stdio.h>
void fun( int m, int *k, int xx[] )
{
int i,j,n=0;
for(i=4;i<m;i++)
{
for(j=2;j<i;j++)
if(i%j==0)
break;
//if(j<i) //這是求非素數
if(j >= i) //這是求素數
xx[n++]=i;
}
*k=n;
}
void NONO ();
int main()
{
int m, n, zz[100];
printf( "\nPlease enter an integer number between 10 and 100: " );
scanf("%d", &n );
fun(n, &m, zz );
printf( "\n\nThere are %d non-prime numbers less than %d:", m, n );
for( n = 0; n < m; n++ )
printf( "\n %4d", zz[n] );
NONO();
}
void NONO()
{
/* 請在此函式內打開檔案,輸入測驗資料,呼叫 fun 函式,
輸出資料,關閉檔案。 */
int m, n, zz[100];
FILE *rf, *wf ;
rf = fopen("in.dat","r") ;
if (!rf)
return;
wf = fopen("out.dat","w") ;
if (!wf)
return;
fscanf( rf, "%d", &n );
fun( n, &m, zz );
fprintf(wf, "%d\n%d\n", m, n );
for( n = 0; n < m; n++ )
fprintf(wf, "%d\n", zz[n] );
fclose(rf);
fclose(wf);
}
供參考~
樓主的fun是求素數呢?還是不求素數?
如果求素數,那么就應該判斷if (j >= i)否則應該用樓主開始寫的。
uj5u.com熱心網友回復:
求素數。。。uj5u.com熱心網友回復:
哦不,是非素數uj5u.com熱心網友回復:
如果是非素數,那么為啥5要進去呢?
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/12595.html
標籤:C語言
