指针的赋值问题
#include <stdio.h>#define M 100
void fun ( int m, int *a , int *n )
{int i,j=0;
for(i=2;i<m;i++)
if(i%7==0||i%11==0)
a[j++]=i;
*n=j;//不是说不能*n直接赋值j,一定要n赋值&j。但是为什么这个可以这样我不懂了
}
main( )
{ int aa[M], n, k;
void NONO ( );
fun ( 50, aa, &n );
for ( k = 0; k < n; k++ )
if((k+1)%20==0) printf("\n");
else printf( "%4d", aa[k] );
printf("\n") ;
NONO( );
}
void NONO ( )
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *fp, *wf ;
int i, n, j, k, aa[M], sum ;
fp = fopen("in.dat","r") ;
wf = fopen("out.dat","w") ;
for(i = 0 ; i < 10 ; i++) {
fscanf(fp, "%d,", &j) ;
fun(j, aa, &n) ;
sum = 0 ;
for(k = 0 ; k < n ; k++) sum+=aa[k] ;
fprintf(wf, "%d\n", sum) ;
}
fclose(fp) ;
fclose(wf) ;
}