C语言课程设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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");

}

}

相关文档
最新文档