读书人

大家帮小弟我看看这题的有关问题在哪

发布时间: 2012-02-06 15:52:44 作者: rapoo

大家帮我看看这题的问题在哪?
/*给定fun的功能是:求出:1!,3!,......,K!(k是小于9的奇数)放在一维数组传回主函数
如k=7则应输出1.000000 6.000000 120.00000 5040.0000
改正fun函数 */

//#include <conio.h>
#include <stdio.h>
#define N 5
void fun ( int k, double a[ ] )
{
int i,j ;
/***********found***********/
int n=0 ;
double y = 1.0;
for (i=1; i<=k;i++,i++)
{
/***********found***********/

for ( j = 1; j<= i; j ++ )
y = y * j;
a[ n++ ] = y;
}
}

main()
{
int k = 7, j;
double aa[N];
//clrscr();
fun ( k, aa );
for ( j = 0; j <= k/2 ; j++ )
printf ( "%15.5lf",aa[j] );
printf ("\n" );
//NONO() ;
}
输出的结果是1.00000 6.00000 720.00000 3628800.00000

好奇怪啊

[解决办法]

C/C++ code
#include  <stdio.h> #define  N  5 void  fun ( int k,  double  a[ ] ) {   int  i,j ; /***********found***********/   int n=0 ;   double y = 1.0;   for (i=1; i <=k;i++,i++)   { /***********found***********/    y=1.0;      for ( j =  1; j <= i; j ++ )  y = y * j;       a[ n++ ] = y;   } } main() {   int k = 7, j;   double  aa[N];   //clrscr();   fun ( k, aa );   for ( j = 0; j  <= k/2 ; j++ )   printf ( "%15.5lf",aa[j] );    printf ("\n" );   //NONO() ; }
[解决办法]
C/C++ code
//#include  <conio.h> #include  <stdio.h> #define  N  5 void  fun ( int k,  double  a[ ] ) {     int  i,j ;     /***********found***********/     int n=0 ;     double y = 1.0;     for (i=1; i <=k; i++,i++)     {         /***********found***********/                 for ( j =  1; j <= i; j ++ )              y = y * j;         a[ n++ ] = y;         y = 1.0; //问题出在这里,没有对y进行重新置值。    } } void main() {     int k = 7, j;     double  aa[N];     //clrscr();     fun ( k, aa );     for ( j = 0; j  <= k/2 ; j++ )         printf ( "%15.5lf",aa[j] );      printf ("\n" );     //NONO() ;     return;} 

读书人网 >C语言

热点推荐