=04。哪个正确?为什么?*/ 6-45 6-46 6-47
根据下列公式计算从n个不同元素中抽取m个元素(m?n)的组合数。
mCn?n!
m!(n?m)!编写程序,输入2个正整数m和n(m?n),计算并输出组合数。(注意变量
的数据类型)
Program #include <> main() { int m, n, i; long f, c; printf(\ scanf(\ for(i=2, f=1; i<=n; i++) f *= i; c=f; for(i=2, f=1; i<=m; i++) f *= i; c=c/f; for(i=2, f=1; i<=n-m; i++) f *= i; c=c/f; printf(\ } Output
Please input n and m (m <= n): 5 3? input */
The result is: 10 6-48
输出21世纪所有的闰年。
/* Blue is
Program #include <> main() { int year, n; for(year=2000, n=0; year<3000; year++) if ( (year%4==0&&year0!=0)||(year@0==0) ) { printf ( \ n++; /*如果把n++放到for中year++后面,会如何?*/ if (n==0) printf(\ } 6-49
} 用一张一元票换1分、2分和5分的硬币(至少各一枚),问有几种换法?
每种换法中1分、2分和5分的硬币各有多少?
Program #include <> main() { int f1, f2, f5, n, m=0; for(f1=1, n=0; f1<=100; f1++) { for(f2=1; f2<=(100-f1)/2; f2++) { if((100-f1-2*f2)%5==0 && f1!=0 && f2!=0 && 100-f1-2*f2!=0) { n++; f5=(100-f1-2*f2)/5; printf(\Fen.\\n\ m++; if(m$==0) /*这个if语句是什么用途?没有它会怎样?*/ { printf(\ getchar(); } } } } } 6-50
两个乒乓球队进行比赛,各出3个人。甲队为a、b、c三个人,乙队为x、
y、z三个人。已经抽签决定比赛名单。有人向队员打听比赛的名单。A说他不和x比,c说他不和x、z比。编写程序找出3对比赛选手的名单。 Program #include <> main() { char x, y, z; for(x='a'; x<='c'; x++) for(y='a'; y<='c'; y++) for(z='a'; z<='c'; z++) { if(x==y || x==z || y==z || x=='a' || x=='c' || z=='c') continue; printf(\ } } Output
x-b, y-c, z-a 6-51
编写程序,显示如下的二维平方根表(即给出~之间的任意数的平方根)。
例如,x为的平方根,而y为的平方根。
数学 …… …… x y Program #include <> #include <> main() { int i, j; printf(\ for(j=0; j<=9; j++) printf(\ for(i=0; i<=9; i++) { printf(\ for(j=0; j<=9; j++) printf(\ } /*在哪里换行的?*/ } Output
6-52 6-53 6-54 6-55 6-56 6-57 6-58 6-59 6-60 6-61 6-62 6-63 6-64 6-65 6-66 6-67
弗洛伊德三角形如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ……
… … … … … … ……
91
(1)编写程序,显示如上形式的弗洛伊德三角形; (2)修改该程序,显示如下形式的弗洛伊德三角形: 1 0 1 1 0 1 0 1 0 1 1 0 1 0 1 ……
Program (1) #include <> main() { int n, i, j; for(n=1, i=1; ; i++) { if (n>91) break; for(j=1; j<=i; j++) { printf(\ if (n>91) break; } printf(\ } } Program (2) #include <> main() { int n, i, j; for(n=1, i=1; ; i++) { if (n>91) break; for(j=1; j<=i; j++) { printf(\ /*输出什么?*/ n++; if (n>91) break; } printf(\ } } /*这两个程序在哪个地方有所不同?*/ 6-68
查询自动售货机中商品的价格。假设自动售货机出售4种商品:薯片
(crisps)、爆米花(popcorn)、巧克力(chocolate)和可乐(cola),售价分别为元、元、元和元。在屏幕上显示以下菜单(编号和选项): 6-69 6-70 6-71 6-72 6-73 6-74
[1] Select crisps [2] Select popcorn [3] Select chocolate [4] Select cola [0] Exit
用户可以连续查询商品的价格,当查询次数超过5次时,自动退出查询;
不到5次时,用户可以选择退出。当用户输入编号1~4,显示相应商品的价格(保留2位小数);输入0,退出查询;输入其他编号,显示价格为0。 Program #include <> main() { float crisps=, popcorn=, chocolate=, cola=; int i=0, n; printf(\ printf(\ printf(\ printf(\ printf(\ while(i<5) { printf(\ scanf(\