C语言的程序设计———讨论一组员:张璐王丽芳吴齐双余慧颖应元顺朱泰克刘天京讨论题一:百钱百鸡1只公鸡=5块钱1只母鸡=3块钱3只小鸡=1块钱S1:设各种鸡的只数公鸡X母鸡Y小鸡Z=100-X-YS2:分析小鸡的价钱Z除以3.0步骤分析S3:控制一个变量X的自增,并且在X自增1的同时Y要循环可能的只数,Z随Y的变化而变化,利用循环的嵌套语句S4:分析XY要循环的次数S5:在循环的时候同时要判断XYZ乘以各自价钱是否满足等于一百,利用IF语句进行判断S6:输出最后的结果,用printf语句分析流程图输入x,y,zHen=3cock=5,sum=100Money=100y=0y++y=40?X=0X=20?x*cock+y*hen+z/3.0==money输出x,y,zx++z=sum-x-y真假真真假假结束C语言的代码#includestdio.hmain(){intcock=5,hen=3,sum=100,money=100;intx,y,z;for(x=0;x=100;x++)for(y=0;y=100;y++){z=sum-x-y;if(x*cock+y*hen+z/3.0==money){printf(%d%d%d,x,y,z);printf(\n);}}}c语言代码运行本题关键一定要除以3.0讨论题二:钻石图案*************************---*--***-************-*****--***---*步骤分析S1:把砖石图案分成上下两半S2:找出上半图案的规律S3:定义自变量ijk用一个循环控制列用二个嵌套循环分别控制空格和星号S4:找出jk于列控制i的关系,使空格和星号能按照规律输出S5:用上半图案的方法来做下半图案的循环控制分析流程图开始输入i=0,j=0,k=0i=0,j=0,k=0Ni4j3-i空*k2*i+1i=i+1j=j+1k=k+1YYYNNi=i+1i3ji+1空*k5-2*ij=j+1k=k+1YYYNNN结束C语言的代码#includestdio.hmain(){inti,j,k;for(i=0;i4;i++){for(j=0;j3-i;j++)printf();for(k=0;k2*i+1;k++)printf(*);printf(“\n”);}for(i=0;i3;i++){for(j=0;ji+1;j++)printf();for(k=0;k5-2*i;k++)printf(*);printf(\n);}}本题关键找出jk于列控制i的关系C语言代码运行k2*i+1j3-iji+1k5-2*i讨论题三:循环小游戏题目要求:猜一个随机产生的数猜测的次数在十次以内户输入数字,程序给出大小提示步骤分析S1:随机产生一个数,利用rand函数rand函数的头文件stdlib.hS2:题目中要求的是1~100的数利用取余的方法对一个数取余,则余数一定小于除数S3:利用循环控制猜测的次数S4:把猜测的数于机器随机产生的数进行比较,并且提示大小,利用if语句S5:当在十次以内猜对,则跳出循环,利用break语句C语言的代码#includestdio.h#includestdlib.hmain(){intx,y,i;x=rand()%100+1;printf(输入一个100以内的整数\n);for(i=1;i=10;i++){scanf(%d,&y);if(x==y){printf(恭喜你猜对了\n);break;}elseif(yx)printf(大于随机数\n);elseprintf(小于随机数\n);}if(i=11)printf(超过次数,您没有猜对);}break本题关键利用break跳出循环c语言代码运行分析流程图输入x,y,i=1X=rand()%100+1y==x?i++真假yx?输出大于随机数i=10?输出小于随机数输出恭喜你答对了真假真假输出您没有猜对i=11?真假结束讨论题四:学生信息管理系统题目要求:输入20个学生的成绩求出20个学生的总成绩和,平均分并且求出最高分和最低分步骤分析S1:求最大,最小分数利用循环语句S2:把scanf语句放在循环里,每输入一个学生的成绩,则循环一次S3:循环一次实现累加的同时,利用if语句比较本次的成绩与下一次输入的成绩的大小S4:循环结束后把累加的总分除以学生得到平均分S5:利用printf输出各项数值分析流程图I,min,grade,aversum=0,max=0i=1i=20输入gradesum=sum+grademaxgrademax=grademin=gradeYaver=sum/20aver,sum,max,minYi=i+1结束NmingradeYC语言的代码#includestdio.hmain(){inti,grade,max=0,min,sum=0,t;floataver;printf(输入20个学生的成绩\n);for(i=1;i=5;i++){scanf(%d,&grade);sum=sum+grade;if(maxgrade)max=grade;if(mingrade)min=grade;}aver=(float)sum/20;printf(%d\n%f\n%d\n%d\n,sum,aver,max,min);}c语言代码运行讨论题五:数列前四十项和题目要求:求出:235813211,2,3,5,8,13,……前四十项和步骤分析S1:分析题目中分子,分母变化的规律分母是前一项的分子分子是前一项分子与分母的和S2:前四十项和利用循环语句每循环一次总数累加一个数S3:分母除以分子要强行转换成浮点型S4:结果中不能以分数的形式输出,一定要用printf函数以浮点型的形式输出分析流程图i=1sum=sum+(float)b/t真假输出sumt=aa=bi=40?b=b+ti=i+1输入a=1b=2tC语言的代码#includestdio.hmain(){inta=1,b=2,t,i;floatsum;for(i=1;i=3;i++){t=a;a=b;sum=sum+(float)b/t;b=b+t;}printf(%f\n,sum);}c语言代码运行本题关键利用第三个变量t,实现数列的规律---*--***-************-*****--***---*