[说明]
某班有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][i]=b; }
(5); } /* 求和s 为所求结果*/
printf (" ");
printf ("f (%d, %d ) =%1d\n", n, m, s );
}
例如,当a=1,b=2,c=1时,方程的两个根分别是:x1 =-1.00,x2=-1.00。
注意:部分源程序给出如下。
请勿改动函数中的其他任何内容,仅在横线上填入所编写的若干表达式或语旬。
试题程序:
include
include
void main
{
double a,b,c,x1,x2,disc;
do
{
printf("Input a,b,C:");
scanf("%1f,%1f,%1f”,&a,&b,&C);
disc=b*b一4*a*C:
if(disc<0)
printf("disc=%1f\n Input again!\n",disc);
}
while(【1】);
printf("****1he result****\n");
x1=(-b+【2】 (disc))/(2*a);
x2=(-b-【3】(disc))/(2*a);
printf("\nx1=%6.21f\nx2=%6.21f\n",x1,x2);
}
编程设计一个简单的计算器程序,要求用户从键盘输入如下形式的表达式: 操作数1 运算符op 操作数2 然后,计算并输出表达式的值 指定的运算符为: 加(+) 减(-) 乘(*) 除(/) 代码如下,所给程序是否存在错误,若有,找出错误所在并改正。 #include <stdio.h> int main() { float data1, data2; char op; printf("Please enter the expression:"); scanf("%f %c%f", &data1, &op, &data2); /* %c前有一个空格 */ switch (op) { case '+': printf("%f + %f = %f\n", data1, data2, data1 + data2); break; case '-': printf("%f - %f = %f\n", data1, data2, data1 - data2); break; case '*': printf("%f * %f = %f\n", data1, data2, data1 * data2); break; case '/': printf("%f/%f = %f\n", data1, data2,data1/data2); break; default: printf("Invalid operator!\n"); } return 0; }
A、第20行语句有错误,改成: if (fabs(data2)<=eps) printf("division by zero!\n"); else printf("%f %f="%f\n"," data1, data2, data1 data2); 同时,第1行语句下方应加入 #include> #define EPS 1e-6
B、default分支缺少break语句
C、没有错误
D、第20行语句有错误,改成: if (data2=0) printf("Division by zero!\n"); else printf("%f/%f = %f\n", data1, data2, data1/data2);
A、17
B、18
C、19
D、程序无法运行,提示错误。
f(n)=1 当n=0,1时
f(n)=f(n-1)+f(n-2) 当n>1时
则按照递推公式可以得到数列:1,1,2,3,5,8,13,21,34,55,……。现要求
从键盘输入n值,输出对应项的值。例如当输入n为8时,应该输出34。程序如下,
请补充完整。
Private Sub runll_Click()
f0=1
f1=1
num=Val(InputBox("请输入一个大于2的整数:"))
For n=2 To 【 】
f2=【 】
f0=f1
f1=f2
Next n
MsgBox f2
End Sub
为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!