首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2012-02-06 
大家帮我看看这题的问题在哪?/*给定fun的功能是:求出:1!,3!,......,K!(k是小于9的奇数)放在一维数组传回主

大家帮我看看这题的问题在哪?
/*给定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;} 

热点排行