填空题 [说明] 某班有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 ({{U}} (1) {{/U}}; j<=n; j++) { for (i=j;{{U}} (2) {{/U}}; i++) /* 计算 a (2, m),…, a(n, m)*/ { {{U}} (3) {{/U}}; b=0, for ( k=1 k<j-1; k++ {{U}} (4) {{/U}}; a[j][i]=b; } {{U}} (5) {{/U}}; } /* 求和s 为所求结果*/ printf (" "); printf ( "f ( %d, %d ) =%1d/n", n, m, s ); }
  • 1、
【正确答案】 1、(1)j=2 (2) i<=m    
【答案解析】(3) p=i-j (4) b+= a[k][p] (5) s+=a[j][m]