C语言课程设计矩阵的构造与打印Word下载.docx

上传人:b****3 文档编号:17616051 上传时间:2022-12-07 格式:DOCX 页数:14 大小:282.84KB
下载 相关 举报
C语言课程设计矩阵的构造与打印Word下载.docx_第1页
第1页 / 共14页
C语言课程设计矩阵的构造与打印Word下载.docx_第2页
第2页 / 共14页
C语言课程设计矩阵的构造与打印Word下载.docx_第3页
第3页 / 共14页
C语言课程设计矩阵的构造与打印Word下载.docx_第4页
第4页 / 共14页
C语言课程设计矩阵的构造与打印Word下载.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

C语言课程设计矩阵的构造与打印Word下载.docx

《C语言课程设计矩阵的构造与打印Word下载.docx》由会员分享,可在线阅读,更多相关《C语言课程设计矩阵的构造与打印Word下载.docx(14页珍藏版)》请在冰豆网上搜索。

C语言课程设计矩阵的构造与打印Word下载.docx

(1)矩阵为n阶方阵,n由键盘输入;

(2)可在螺旋方阵和蛇形方阵中选择(如下图所示)。

本程序的设计要充分运用所学知识函数调用,二维数组,内存的动态分配,指针等进行设计,问题的关键在于如何进行矩阵的“转向”在螺旋矩阵设计中通过记录(计数器)控制每行的数的数目和转向,实现行列互换,“层层推进”,根据n的奇偶定出最后一位数(即n!

)的具体位置,从而实现数的螺旋循环。

在蛇形矩阵中通过行列坐标之和的递增规律,以对角线元素行列坐标之和为界,通过坐标和的奇偶互换行列坐标从而实现“转向”。

通过判断数n与对角线元素坐标和的大小,跨过“对角线”,进行类似操作即可。

在程序的设计过程中进行了明确的分工与合作,第一部分螺旋矩阵的设计由王一朝完成,第二部分蛇形矩阵的设计由王艳辉完成。

1.源程序代码

#include<

stdio.h>

malloc.h>

string.h>

stdlib.h>

voidmain()

{

inta,n,*w,p,g,j;

int*wyz(intn);

intwyh(intn);

intmenu();

j=menu();

if(j==1)exit(0);

else

{clrscr();

printf("

pleasechoose1or2:

1forspialmatrix,2forserpentmatrix:

"

);

scanf("

%d"

&

a);

if(a==1)

{printf("

pleaseentern"

n);

w=wyz(n);

for(p=1,g=0;

g<

=n*n-1;

g++,p++)

{

printf("

%4d"

w[g]);

if(p%n==0){printf("

\n"

printf("

}}}

wyh(n);

}

}

intmenu()

inti;

clrscr();

textcolor(85);

gotoxy(9,10);

cprintf("

welcometousingoursoftware\n"

gotoxy(9,11);

**************Menu************\n"

gotoxy(9,12);

*1.use*\n"

gotoxy(9,13);

*2.no*\n"

gotoxy(9,14);

******************************\n"

gotoxy(9,15);

PleaseEnterYourChoice<

1~2>

:

i);

return(i);

int*wyz(intn)

int*str,i,j,b,k,q,m,z,r,p,g,sum,max,h;

clrscr();

sum=0;

max=n*n;

str=(int*)malloc(max+max);

for(q=0,j=1,b=0,z=i=n-1,g=0;

sum<

n*n-1;

b++,q++,z=z-2)

for(m=q;

m<

=i-b;

m++,j++)

str[m+b*n]=j;

for(m=m-1,r=1+b;

r<

=n-1-b;

j++,r++)

str[r*n+m]=j;

for(r=r-1,m=m-1;

m>

=b;

j++,m--)

for(m=m+1,r=r-1;

r>

=b+1;

j++,r--)

str[r*n+m]=j;

g=4*(z+1)-4;

sum=sum+g;

if(n%2!

=0)str[max/2]=n*n;

return(str);

intwyh(intn)

intj,k,c,m=1,x,y;

inta[100][100];

Inputn:

"

do

{

scanf("

}while(n<

1||n>

10);

for(c=0;

c<

=(n-1)+(n-1);

c++)

if(c<

=n-1)

for(k=0;

k<

=c;

k++)

{

for(j=0;

j<

j++)

{

if(k+j==c)

{

if(c%2==0)

a[k][j]=m++;

else

a[j][k]=m++;

}

}

}

else

for(k=0;

=n-1;

for(j=0;

{

if(k+j==c)

if(c%2==0)

a[k][j]=m++;

else

a[j][k]=m++;

}

}

for(k=0;

n;

for(j=0;

a[k][j]);

2.调试

在运行程序后,我们就进入了选择界面。

作为使用者,他可以考虑是否使用我们的程序。

运行结果如下:

当决定你的选择后,可按上述提示键入1或2.键入以后出现下面的界面。

在这个界面下,可以考虑是使用蛇形矩阵还是使用螺旋形矩阵?

当选择1(即螺旋形矩阵)得到的结果如下

这是可以选择输入的矩阵的阶数如果输入6,运行结果如下:

如果在这次使用中不用螺旋形矩阵可以选择使用蛇形矩阵,运行结果如下:

同样此时可以键入数字,例如5:

六、流程图

蛇形矩阵伪代码如下:

Inputthenumbern

n取值范围:

1<

n<

10

m=1

三重循环

在c<

=(n-1)中

c=0,k=0,j=0

k+j=0+0=c

c能被2整除

a[0][0]=m=1

c=1,k=0,j循环

j=0,不满足k+j=c,pass

j=1,满足k+j=c

c=1不能被2整除,交换数组行列坐标

a[1][0]=m++=2

c=1,k=1,j=0满足k+j=c

a[0][1]=m++=3

c=2,k=0时,j循环

j=0,1时,不满足k+j=c,pass

j=2,满足k+j=c

a[0][2]=m++=4

k=1时,j=0不满足k+j=c,pass

j=1时,满足k+j=c

a[1][1]=m++=5

k=2时,j=0满足k+j=c

a[2][0]=m++=6

当c>

(n-1)时

c=n,k=0,j循环

j=0,不满足k+j=c,pass

j=1,不满足k+j=c,pass

j=n-1,满足k+j=c

判断c能否被2整除,确定交不交换行列坐标

a[k][j]=m++或a[j][k]=m++

k=2,j循环(同上)

k=n-1,j=0,满足k+j=c

c=n+1,k=0,j循环(同上)

c=2n-2,k=0,j循环(同上)

k=1,2,、、、n-2,j循环(同上)

k=n-1,j=0,1,2、、、n-2判断k+j=c是否成立,进行循环

j=n-1,满足k+j=c,且c能被2整除

a[n-1][n-1]=m++=n!

通过此次课题的设计,使我们对所学知识特别是数组、指针、函数的调用技巧等有了更加充分的认识与理解,在设计调试过程过程中,也得到了指导老师的许多有益意见与指导,使自己受益匪浅。

设计中充分发挥自己在不同方面的优势进行了分工合作,在相互沟通与交流的努力下成功完成了本次课程的设计工作。

1.谭浩强,C程序设计(第三版)。

北京:

清华大学出版社,2005年

2.赵永哲,李雄飞,戴秀英编著,《C语言程序设计》,科学出版社,2003年

3.夏宽理,赵子正编著,《C语言程序设计》,中国铁道出版社,2006年

4.谭浩强编著,《C程序设计》,清华大学出版社,1991年

5.GaryJ.Bronson,AFirstBookofANSIC(FourthEdition),PublishingHouseofElectronicsIndustry,2006.

6.AlKelley,IraPohl,ABookonC:

ProgramminginC(FourthEdition),ChinaMachinePress,2004.

7.BrianW.Kernighan,DennisM.Ritchie,TheCProgrammingLanguage,ChinaMachinePress,2006.

8.KochanSG著。

ProgramminginANSIC。

HagdenBooksIndianapolis:

Indiana,U.S.A,1994

9.BeitelHM,DeitelPJ.CHowtoprogram.secondEdition.蒋才鹏等译。

C程序设计教程。

机械工业出版社,2000

指导教师评语

主要内容包括:

设计报告内容的完整性和完成情况、报告格式的规范性、通过课程设计取得的收获等。

成绩:

 

签名:

年 月 日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1