电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

从键盘读入一个整型数据,输出该数组以及插入数据后的数组计算机练习题VIP免费

从键盘读入一个整型数据,输出该数组以及插入数据后的数组计算机练习题_第1页
从键盘读入一个整型数据,输出该数组以及插入数据后的数组计算机练习题_第2页
从键盘读入一个整型数据,输出该数组以及插入数据后的数组计算机练习题_第3页
1、题目:在一个有序的整型数组中,插入一个整型数据并保持原来排序顺序不变(提示:原有序数组为1,2,3,7,8,9,插入数据5后的排序为1,2,3,5,7,8,9)。要求:初始化一个有序数组,从键盘读入一个整型数据,输出该数组以及插入数据后的数组。#include"stdio.h"#defineN5main(){inta[11]={1,4,6,9,13,16,19,28,40,100};inttemp1,temp2,number,end,i,j;printf("初始数组如下:");for(i=0;i<10;i++)printf("%5d",a[i]);printf("\n");printf("输入插入的数据:");scanf("%d",&number);end=a[9];if(number>end)a[10]=number;else{for(i=0;i<10;i++){if(a[i]>number){temp1=a[i];a[i]=number;for(j=i+1;j<11;j++){temp2=a[j];a[j]=temp1;temp1=temp2;}break;}}}for(i=0;i<11;i++)printf("%6d",a[i]);}2、题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况插入后此元素之后的数,依次后移一个位置。#includemain(){inta[11]={1,4,6,9,13,16,19,28,40,100};inttemp1,temp2,number,end,i,j;printf("originalarrayis:\n");for(i=0;i<10;i++)printf("%5d",a);printf("\n");printf("insertanewnumber:");scanf("%d",&number);end=a[9];if(number>end)a[10]=number;else{for(i=0;i<10;i++){if(a[i]>number){temp1=a[i];a[i]=number;for(j=i+1;j<11;j++){temp2=a[j];a[j]=temp1;temp1=temp2;}break;}}}for(i=0;i<11;i++)printf("%6d",a);}3、已有一个已排好序的数组,今输入一个数,要求按原来排序的规律将它插入数组中。#include#defineN10voidmain(){inti,j;floatorg[N],x,to[N+1],t;for(i=0;ito[i+1]){t=to[i];to[i]=to[i+1];to[i+1]=t;}else;elseif(to[i]#defineN5voidreverse(int*p,intn);voidmain(){inta[N]={8,6,5,4,1},i;reverse(a,N);for(i=0;ivoidandian(float*p,intm,intn);voidmain(){floata[3][4]={{10,5,100,3},{8,4,50,1},{9,5,200,5}};andian(a[0],3,4);}voidandian(float*p,intm,intn){inti,j=0,k,l;floaty,z;for(k=0;kz)z=*(p+j*n+l);if(z==y){printf("鞍点是第%d行,第%d列的数为%f\n",j+1,k+1,y);break;}}if(k>n-1)printf("没有鞍点\n");}6、奇数阶魔阵魔阵是用自然数1、2、3…、n2填n阶方阵的各个元素位置,使方阵的每行的元素之和、每列元素之和及主对角线元素之和均相等;奇数阶魔阵的一个算法是将自然数数列从方阵的中间一行最后一个位置排起,每次总是向右下角排(即A[i,j]的下一个是A[i+1,j+1]),但若遇以下四种情形,则应修正排数法。(1)、列排完(即j=n+1时),则转排第一列(2)、行排完(即i=n+1时),则转排第一行(3)、对A[n,n]的下一个总是A[n,n-1](4)、若A[i,j]已排进一个自然数,则排A[i-1,j-2]例如3阶方阵,则按上述算法可排成:438951276有了以上的算法,解题主要思路可用伪代码描述如下:1i:=ndiv2+1,y:=n/*排数的初始位置*/2a[i,j]:=1;3fork:=2ton*ndo4计算下一个排数位置(i,j)5ifa[i,j]<>0then6i:=i-1;7j:=j-2;8a[i,j]:=k;9endfor对于计算下一个排数位置,按上述的四种情形进行,但我们应先处理第三处情况。算法描述如下:1if(i=n)and(j=n)then2j:=j-1;/*下一个位置为(n,n-1)*/;3else4i:=imodn+1;5j:=jmodn+1;6endif;源程序如下:programex5_7;vara:array[1..99,1..99]ofinteger;i,j,k,n:integer;beginfillchar(a,sizeof(a),0);write("n=");readln(n);i:=ndiv2+1;j:=n;a[i,j]:=1;fork:=2ton*ndobeginif(i=n)and(j=n)thenj:=j-1elsebegini:=imodn+1;j:=jmodn+1;end;ifa[i,j]<>0thenbegini:=i-1;j:=j-2;end;a[i,j]:=k;end;fori:=1tondobeginforj:=1tondowrite(a[i,j]:5);writeln;end;end.7、打印“魔方阵”算法如下所示:voidMagicMatrix(){inta[16][16],i,j,k,p,m,n;p=1;while(p==1)/*输入1~15的奇数*/{printf("Pleaseinputn(n=1~15)\n");scanf("%d",&n);if((n!=0)&&(n<=15)&&(n%2!=0))p=0;}/*Initialization*/for(i=1;i<=n;i++)for(j=1;j<=n;j++)a[i][j]=0;/*建立魔方阵*/j=n/2+1;a[1][j]=1;for(k=2;k<=n*n;k++){i=i-1;j=j+1;if((i<1)&&(j>n)){i=i+2;j=j-1;}else{if(i<1)i=n;if(j>n)j=1;}if(a[i][j]==0)a[i][j]=k;else{i=i+2;j=j-1;a[i][j]=k;}}/*输出魔方阵*/for(i=1;i<=n;i++){for(j=1;j<=n;j++)printf("%4d",a[i][j]);printf("\n");}}/*MagicMatrix*/

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部