懂c语言的来看下啊!

来源:百度知道 编辑:UC知道 时间:2024/06/30 06:07:07
这是一道二级题的答案,题目是:
编写函数fun,其功能是:求出1到1000之间能被7或11整除,但不能同时被7和11整除的所有整数,并将其放在a所指的数组中,通过n返回这些数的个数。

按这个条件,98应该也满足,但这段程序在vc6.0上运行的结果中没有98,看了很久也没看出有什么问题.那位大虾能告诉我怎么回事呢?

#include <stdio.h>

void fun (int *a, int *n)
{
int i,j=0;
for(i=1;i<=1000;i++) /*求1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数,并放入数组a中*/
if((i%7==0||i%11==0)&&i%77!=0)
a[j++]=i;
*n=j;
}

main( )
{ int aa[1000], n, k ;
void NONO ( );

fun ( aa, &n ) ;
for ( k = 0 ; k < n ; k++ )
if((k + 1) % 10 == 0) printf("\n") ;
else printf("%5d", aa[k]) ;
NONO( );
}

void NONO ( )
{/* 本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/
int aa[1000], n, k ;
FILE *fp ;

fp = fopen("out.dat","w") ;
fun ( aa, &n ) ;
for ( k = 0 ; k < n ; k++ )
if((k + 1) % 10 == 0) fpr

#include <stdio.h>

void NONO();/*函数声明放在前面*/
void fun (int *a, int *n);

void fun (int *a, int *n)
{
int i,j=0;
for(i=1;i<=1000;i++) /*求1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数,并放入数组a中*/
if((i%7==0||i%11==0)&&i%77!=0)
a[j++]=i;
*n=j;
}

main( )
{ int aa[1000], n, k ;

fun ( aa, &n ) ;
for ( k = 0 ; k < n ; k++ )
{
printf("%5d", aa[k]) ;/*这里改成这样,否则 (k + 1) % 10 == 0 时
就没有输出aa 只输出了 "\n"*/
if((k + 1) % 10 == 0)
printf("\n") ;
}

NONO ( );
}

void NONO ( )
{/* 本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/
int aa[1000], n, k ;
FILE *fp ;

fp = fopen("out.dat","w") ;
fun ( aa, &n ) ;
for ( k = 0 ; k < n ; k++ )
if((k + 1) % 10 == 0) fprintf(fp, "\n")