1、设原先鱼的总数是x条 设A、B、C、D、E拿之前剩下的鱼数量分别为A、B、C、D、E:则 A=x;B=(A-1)*4/5;C=(B-1)*4/5;D=(C-1)*4/5;E=(D-1)*4/5;E可以是 6、11、16。(以5递增) 若E已知,则由E可依次推出D、C、B、A。此外,D、C、B、A要满足以下约束:(D-1) mod 5=0(C-1) mod 5=0(B-1) mod 5=0(A-1) mod 5=0*/#include int fish; int newfish;/迭代变量,记录鱼的数量 int finish,isOK; / 结束标志 int i;/for循环控制变量 finis
2、h=0; for (fish=6;finish=0;fish+=5)/对E进行递增,E满足(E-1)mod 5=0 newfish = fish; isOK = 1; for (i=1;i=4 & isOK=1;i+)/四次循环,依次求得D,B,C,A newfish = newfish*5/4+1; if (newfish-1)%5!=0) /如果不满足(fish-1)mod 5=0 isOK = 0; if (isOK !=0) finish=1;至少是%d条鱼,newfish);3、第6章习题6.9小球反弹#define TIMES 10 main() int times; /记录是第几
3、次弹起 double height; /记录小球弹起时的高度 height=10000.0; /*height的单位是cm*/ times=1;/*第一次循环求第1次弹起高度 */ while(times=1) peach=2*(peach+1);第%d天桃子数是:,day,peach); day-;第一天桃子数是:,peach);6、/从高位分解整数的各个位/输入的数 int length; int n;/代表10的lenth-1次方, int k;/循环控制变量/代表截取的高位输入整数: length=0; n=num; if (num=0) /若输入的是0,则其长度位1 length=1
4、; else /从最低位开始,依次从n中砍掉各位 while (n0) n=n/10;/去掉n的最低位 length+; /*从num中分解出一位数字,length加1*/ %d的长度是%d位,num,length); n=1; for (k=1;k0) m=num/n; num=num%n; n=n/10; printf(%d ,m);7、投骰子。投骰子若干次,统计每个面出现的次数。次数从键盘输入。time.h int face,roll,frequency1=0,frequency2=0,frequency3=0;int frequency4=0,frequency5=0,frequenc
5、y6=0; scanf(n);srand(time(NULL);/*use the time of system to seed the rand function,any question please ask teacher liuzhenhua */ for (roll=1;rollachAZ c1+; else if(ch= c2+; else if(ch09 c3+; else c4+;%d %d %d %dn,c1,c2,c3,c4);9、打印乘法表1*1=12*1=2 2*2=43*1=3 3*2=6 3*3=94*1=4 4*2=8 4*3=12 4*4=165*1=5 5*2
6、=10 5*3=15 5*4=20 5*5=256*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=367*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=498*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=649*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 int i,j; for(i=1;=9;i+) for(j=1;j=1;j-) =2*i-1;* for(i=n-1;ii-)11、 打印空心菱形
7、 问题描述:已知一个整数n,你要根据n打印出n阶的空心菱形。输入一个整数n,代表要打印的菱形阶数.输出n阶空心菱形,占2*n-1行。5 * * *) ;=2*i-3; if(i1)第3题. 实验手册中实验4的第4题 (进制转换)Problem 4:进制转换已知一个只包含0和1的二进制数,二进制数的长度不大于10。你的任务是将其转换为十进制数并打印出来。提示:用除法和求余运算符每次从右到左获取二进制整数的各位数字。在十进制数值系统中,最右边的数字是个位,个位的左边依次是十位、百位、千位等等。与之类似,在二进制数值系统中,最右边的数字是1位,左边的数字依次为2位、4位、8位等等。十进制数234可分
8、解为4*1+3*10+2*100,二进制数1101可分解为1*1+0*2+1*4+1*8,它等价于十进制数1+0+4+8,即13。输入一个整数n,代表二进制数,二进制数的长度不大于10。输出二进制转换后的十进制数,占一行。1101131111131 int length,n,sum,temp,i,p2,p10,high; /计算n的长度 temp=n; if (n=0) length=1; else while(temp) temp=temp/10; /计算最高位的位权 for (i=1,p2=1,p10=1;i+) p2=p2*2; p10=p10*10; /将二进制数转换为十进制数 for
9、(i=1,temp=n,sum=0;length1&=length; high=temp/p10; /截取最高位 sum=sum+high*p2; /最高位乘以对应的二进制数位权,并累加 temp=temp%p10; /去掉最高位 p2=p2/2; p10=p10/10; if (length=1),n);,sum);12、 第6章习题6.15,比赛分组两个乒乓球队进行对抗赛,甲队出A、B、C、D四人;乙队出W、X、Y、Z四人。已知部分抽签结果是:A不与X比赛;C不与X、Z比赛,D不与W比赛。你的任务是将全部可能的抽签结果打印出来。输出比赛抽签结果,占三行,每组后再输出一个空行。最后输出总方法
10、数,即“There are %d ways to assign the players.”。The result of ballot is:Group 1:A VS WB VS XC VS YD VS ZGroup 2:B VS ZD VS XGroup 3:A VS YC VS WThere are 7 ways to assign the players. int d=0,A,B,C,D; for(A=W;AA+) for(B=BB+) if (A!=B) for(C=CC+) if (C!=A & C! for(D=DD+) if (D! D!=B &=C) & (A!X) printf(Group %d:,+d);A VS %cn,A);B VS %cn,B);C VS %cn,C);D VS %cn,D); There are %d ways to assign the players.n,d);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1