阅读以下说明和C语言函数,将应填入(n)处的字句写在对应栏内。 [说明] 某班有n个同学,学号分别为1,2,…,n。为了每天指派若干个同学值日,他们放弃传统单调的轮留值日,别出心裁采用“定和值日”法:每天所指派值日同学的学号之和须等于其班号m(n<

admin2009-02-15  27

问题 阅读以下说明和C语言函数,将应填入(n)处的字句写在对应栏内。
[说明]
   某班有n个同学,学号分别为1,2,…,n。为了每天指派若干个同学值日,他们放弃传统单调的轮留值日,别出心裁采用“定和值日”法:每天所指派值日同学的学号之和须等于其班号m(n<m<n(n+1)/2)并且规定:不允许任何两天值日的同学完全一样。
   编程使n个同学按定和m值日(正整数n、m均从键盘输入,约定n<50,m<100),求出可持续的值日天数f(n,m)。运行程序,具体求出f(19,98)的值。
   [函数]
    main ( )
   {
   int b, p,  i , m, n, k;
   static int a[51][101]:
   long s=0;
   printf (" 请输入学生人数;");
   scanf ( "%d", &n );
   printf (" 请输入定和值: ");
   scanf ( "%d", &m );
   a[1][0]=1; a[1][1]=1;                      /* 数组元素赋初值*/
   for ((1); j<=n; j++)
   {
   for (i=j;(2); i++)              /*  计算 a (2, m),…, a(n, m)*/
   {
     (3);
   b=0,
   for ( k=1  k<j-1; k++
     (4);
   a[j]=b; }
     (5); }                          /* 求和s 为所求结果*/
   printf (" ");
   printf ( "f ( %d, %d ) =%1d\n", n, m, s );
   }

选项

答案(1)j=2 (2) i<=m (3) p=i-j (4) b+= a[k][p] (5) s+=a[j][m]

解析
转载请注明原文地址:https://kaotiyun.com/show/YsjZ777K
0

最新回复(0)