C语言课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一
○1设计题目
荷兰国旗问题:要求重新排列一个由Red、White和Blue(这是荷兰国旗的颜色)构成的数组,使得所有的Red都排在最前面,White排在其次,Blue排在最后。
○2选题背景
荷兰国旗呈长方形,由三条水平色带组成,由上至下的颜色为红、白、蓝,是现存最古老的三色旗。其中红色代表勇气,白色代表祝福及庇佑,蓝色代表对祖国的忠诚。选择荷兰国旗这个问题,实际上就是解决类似的排序问题,怎么样能够简单高效的排序并且将顺序简洁的输出,我觉得选这道题很有挑战和意义。
○3设计内容
由自己设定颜色的个数,分别为红蓝白,程序按照红蓝白的顺序输出
④设计思路
本题的思路是设三个变量分别记录每个颜色的个数,然后利用循环,输出每种颜色;
⑤算法
⑥程序清单与运行结果
#include
int main()
{
char color[50];
int i,n;
int R=0,W=0,B=0;
printf("请输入颜色个数\n");
scanf("%d",&n);
for(i=0;i {scanf("%s",&color[i]); if(color[i]=='r') R=R+1; else if(color[i]=='w') W=W+1; else if(color[i]=='b') B=B+1;} while(R--) printf("red\n"); while(W--) printf("white\n"); while(B--) printf("blue\n"); return 0; } ⑦总结 通过本次编程练习,我认真的学习到了if循环语句的判定语句和for和while 的循环语句。使自己对编写程序这件事更加喜欢,相信通过不断地练习,我也能在编程方面有所造诣。 二 ○1设计题目 蛇形矩阵:蛇形矩阵是由1开`始的自然数依次排列成的一个矩阵上三角形。例如,图4给出了一个5阶的蛇形矩阵。 ○2选题背景 蛇形矩阵:矩阵的一种,常被应用在编程题目与数学数列中。将整个图形以对角线斜线分割,只看左半部分。 ○3设计内容 输入阶数后,为二维数组赋初值根据变量的变化作循环,最后输入数值 ④设计思路 主要是循环,横行循环,竖行循环,并找到合适准确的算法。 ⑤算法 ⑥程序清单与运行结果 #include int main() { int ch[20][20],n,i,k,j,q,p; ch[0][0]=1; printf("请输入矩阵阶数\n"); scanf("%d",&n); j=n; for(k=0;k { q=k+1;p=q+1; for(i=0;i { if(k>0) ch[i][k]=ch[i][k-1]+q-1; else if(i>0) ch[i][k]=ch[i-1][k]+p-1; q++;p++; printf("%4d",ch[i][k]); } j--; printf("\n"); } return 0; } ⑦总结 通过本次编程练习,我认真的学习到了二维数组。使自己对编写程序这件事更加喜欢,相信通过不断地练习,我也能在编程方面有所造诣。 三 ○1设计题目 发纸牌 问题描述:假设纸牌的花色有梅花、方块、红桃和黑桃,纸牌的点数有2、3、4、5、6、7、8、9、10、J、Q、K、A,请根据用户输入的纸牌张数n,随机发四手纸牌,每手共有n张纸牌。(所谓一手纸牌指的是一个玩家手里的纸牌) ○2选题背景 扑克牌是一种娱乐用具,是印着各种文字或点子的硬纸片,若干张为一副,种类很多。 ○3设计内容 输入牌的张数,设计随机函数,利用if和switch语句输出纸牌 ④设计思路 利用随机函数和switch语句,能够随机的发牌,并顺利的输出结果 ⑤算法 ⑥程序清单与运行结果 #include #include #include void main() { int i,t,k,n,p,q; int sign[4][13]; printf("请输入张数\n"); scanf("%d",&n); srand((unsigned)time(NULL)); t=4; for(p=0;p { for(q=0;q { i=rand()%13; k=rand()%4; if(sign[i][k]==1) continue; if(k==0) printf("梅花"); else if(k==1) printf("红桃"); else if(k==2) printf("黑桃"); else if(k==3) printf("方块"); switch(i) { case 0:printf("A ");break; case 1:printf("2 ");break; case 2:printf("3 ");break; case 3:printf("4 ");break; case 4:printf("5 ");break; case 5:printf("6 ");break; case 6:printf("7 ");break; case 7:printf("8 ");break; case 8:printf("9 ");break; case 9:printf("10 ");break; case 10:printf("J ");break; case 11:printf("Q ");break; case 12:printf("K ");break;} }printf("\n"); } }