中国石油大学C语言程序网络作业题(含大数相加) 下载本文

if(c==2) printf(\太湖\\n\ if(c==3) printf(\太湖\\n\ if(c==4) printf(\太湖\\n\ if(d==1) printf(\洪泽湖\\n\ if(d==2) printf(\洪泽湖\\n\ if(d==3) printf(\洪泽湖\\n\ if(d==4) printf(\洪泽湖\\n\ break; } } break; } break; } return 0; }

选做 5.25 黑色星期五

在西方,星期五和数字 13 都代表着坏运气,两个不幸的个体最后结合成超级不幸的一天。所以,不管哪个月的13日又恰逢星期五就叫 “ 黑色星期五 ” 。输入某年年号和该年的元旦是星期几( 1-7),输出该年所有的 “ 黑色星期五 ” 的日期(年 /月/日) 。

输入: 4位年号和该年元旦是星期几

输出: 所有的 “黑色星期五”的日期(年/月/日) #include #include int main() {

int y,m,d,x;

scanf(\ for(m=1; m<=12; m++) {

if(m==1||m==3||m==5||m==7||m==8||m==10||m==12) {

for(d=1; d<=31; d++) {

if(d==13&&x==5)

printf(\ x++; if(x==8) x=1; } }

if(m==4||m==6||m==9||m==11) {

for(d=1; d<=30; d++)

- 29 -

{

if(d==13&&x==5)

printf(\ x++; if(x==8) x=1; } }

if(((y%4==0&&y0!=0)||y@0==0)&&m==2) {

for(d=1; d<=29; d++) {

if(d==13&&x==5)

printf(\ x++; if(x==8) x=1; } }

if(y%4!=0&&m==2) {

for(d=1; d<=28; d++) {

if(d==13&&x==5)

printf(\ x++; if(x==8) x=1; } } } return 0; }

选做 5.26 抓疑犯

某地刑侦大队对涉及六个嫌疑人的一桩疑案进行分析: (1) A 、 B 至少有一人作案;

(2)A 、 E 、 F 三人中至少有两人参与作案; (3)A 、 D 不可能是同案犯;

(4)B 、 C 或同时作案,或与本案无关; (5) C 、 D 中有且仅有一人作案;

(6)如果 D 没有参与作案,则 E 也不可能参与作案。 试编一程序,将作案人找出来。 输出格式为(以下结果不是最终答案): A:不是罪犯

- 30 -

B:是罪犯 C:是罪犯 D:不是罪犯 E:不是罪犯 F:是罪犯 #include #include int main() {

int A,B,C,D,E,F; for(A=0; A<=1; A++) for(B=0; B<=1; B++) for(C=0; C<=1; C++) for(D=0; D<=1; D++) for(E=0; E<=1; E++) for(F=0; F<=1; F++)

if(A+B>=1&&A+E+F>=2&&A+D==1&&(B+C==0||B+C==2)&&C+D==1&&(D+E==0||D+E==2)) {

if(A==1)

printf(\是罪犯\\n\ if(A==0)

printf(\不是罪犯\\n\ if(B==1)

printf(\是罪犯\\n\ if(B==0)

printf(\不是罪犯\\n\ if(C==1)

printf(\是罪犯\\n\ if(C==0)

printf(\不是罪犯\\n\ if(D==1)

printf(\是罪犯\\n\ if(D==0)

printf(\不是罪犯\\n\ if(E==1)

printf(\是罪犯\\n\ if(E==0)

printf(\不是罪犯\\n\ if(F==1)

printf(\是罪犯\\n\ if(F==0)

printf(\不是罪犯\\n\ } return 0;

- 31 -

}

选做 5.27 零钱换整钱

小明去银行存钱,拿了一堆硬币。已知 1 角的硬币厚度为 1.8mm , 5 角的硬币厚 1.5mm , 1 元的硬币为 2.0mm 。小明将 1 角的硬币放成一摞,将 5 角的硬币硬币放成一摞,将 1 元的硬币放成一摞,发现 3 摞硬币一样高。银行正好把这些硬币换成若干张面值为 10 元的纸币。问小明至少带了多少钱的硬币(元为单位),每种面值的硬币有多少个? 输入: 无

输出: 1 角的数量,5 角的数量,1元的数量,总金额。(例如:20,30,40,50) 说明: 在结果中只输出各个对应的数字即可 #include #include int main() {

int a,b,c,d;

for(a=1; a<=100; a++) for(b=1; b<=100; b++) for(c=1; c<=100; c++)

if(20*a==15*b&&20*a==18*c) {

d=(a*10+b*5+c)0; if(d!=0) break; d=(a*10+b*5+c)/10;

printf(\ } return 0; }

选做 5.28 马戏团观众人数

一个马戏团表演, n 个座位全满,全部门票收入是 120 元,现在知道,男人每人 5 元,女人每人 2 元,小孩每人 1 角。编程,输入总人数 n ,输出满足要求的男人、女人和小孩人数的全部方案。若 n 人无法满足条件,则输出“No output\\n”。 输入: 人数 n

输出: 男人、女人和小孩人数 #include #include int main() {

int n,a,b,c; scanf(\ for(a=0; a<=24; a++)

for(b=0; b<=(120-5*a)/2; b++)

for(c=0; c<=(120-5*a-2*b)*10; c++) if(5*a+2*b+c/10==120&&a+b+c==n) printf(\ return 0; }

- 32 -