您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 高级语言程序设计实验5-数组(完美运行版)
《高级语言程序设计》实验报告实验序号:5实验项目:数组学号姓名专业、班级实验地点指导教师实验时间一、实验目的及要求1、掌握一维数组和二维数组的定义、赋值、使用和输入输出方法;2、掌握字符数组和字符串的使用;二、实验设备(环境)及要求使用VisualC++6.0;windows系列操作系统的环境。三、实验内容与步骤1.输入若干个整数存放在一维数组中,根据此数组构造两个数组a和b,要求a中存放数组x中所有的正数,b中存放数组中所有的负数,0舍弃,最后分别输出数组a和b。运行结构截图:2.用筛法求1~1000之间的素数。eratosthenes筛法:1)利用数组存放这1000个数;2)挖掉第一个数1(令该数=0);3)2没被挖掉,挖掉后面所有2的倍数;4)3没被挖掉,挖掉后面所有3的倍数;5)4被挖掉,不执行任何操作;6)5没被挖掉,挖掉后面所有5的倍数;7)····直到最后一个数;8)剩下的非0数就是素数。运行结构截图:3.编写程序输入一个字符串,删除字符串中的所有数字字符后输出此字符串。【算法提示】(1)定义一个一维字符数组;(2)输入一串测试字符;(3)依次判断数组中字符是否为数字(即‘0’且‘9’);(4)若是则将后面所有字符依次往前移一位;(5)输出整个字符串。运行结构截图:4.10个小孩围成一圈分糖,老师分给第1个孩子10块,第2个孩子2块,第3个孩子8块,第4个孩子22块,第5个孩子16块,第6个孩子4块,第7个孩子10块,第8个孩子6块,第9个孩子14块,第10个孩子20块,然后所有的小孩同时将自己手中的糖分一半给右边的小孩,糖块数为奇数的人可向老师再要一块。问经过这样几次调整后大家手中的糖的块数都一样?每人各有多少块糖。(注:第i个小朋友的右边是第i-1个小朋友,第1个小朋友的右边是第10个小朋友)运行结构截图:5.假设在2*10的二维数组中存放了数据,其中各行的元素构成一个整数,如第一行元素构成整数1234507000。编写程序比较两行元素构成的整数大小。(规则:从高位起逐个比对应位数,若每位均相等,则两数相等;若遇到第一个不相等的数字,则数字大者为大)例如:12345070001237426000运行结构截图:6.输入一个5行5列的矩阵,计算该矩阵最外圈元素之和。运行结构截图:【选做题】7.老虎机:假设有3*3个方格,编写程序,在程序运行后,在3*3个方格内随机显示符号三种符号“、#、*”得分规则是在一条直线或斜线上有三个相同的图案则得一分,按y继续玩,每人玩三次,统计总得分。(其中可以用’\1’输出)运行结构截图:8.【附加题】任意输入两个字符串,分别存放在a、b两个字符数组中。然后将较短的字符串放在a数组中,较长的字符串放在b数组中,并输出。附加2:输入奇数n,输出nXn方阵。如n=5,输出:0010001010100010101000100运行结构截图:四、分析与讨论成绩教师签名:日期:附源程序清单:1.#includestdio.hmain(){inta[100],b[100],x[100],i,j=0,k,l=0;printf(请输入数组x的个数:);scanf(%d,&k);printf(请输入数组x中的整数,用空格隔开:);for(i=0;ik;i++)scanf(%d,&x[i]);for(i=0;ik;i++){if(x[i]0){a[j]=x[i];j++;}elseif(x[i]0){b[l]=x[i];l++;}}printf(数组a:);for(i=0;ij;i++)printf(\t%d,a[i]);printf(\n数组b:);for(i=0;il;i++)printf(\t%d,b[i]);printf(\n);}2.#includestdio.h#includestdlib.hintmain(){intarray[1000];inti=0,iter=0;for(i=0;i1000;i++)array[i]=i+1;array[0]=0;iter=1;while(iter1000){if(array[iter]!=0)for(i=iter+1;i1000;i++){if(array[i]%array[iter]==0)array[i]=0;}iter++;}for(i=0;i1000;i++)if(array[i]!=0)printf(%d\t,array[i]);printf(\n);}3.#includestdio.h#includestring.hmain(){chara[100];inti,j=0;printf(输入一串测试字符:\n);scanf(%s,&a);for(i=0;istrlen(a);i++){if(!(a[i]='0'&&a[i]='9')){a[j]=a[i];j++;}}printf(输出字符串为:%s,a);printf(\n);}4.#includestdio.h#defineN10main(){inta[N]={10,2,8,22,16,4,10,6,14,20},b[N],i,j;for(j=1;;j++){for(i=9;i0;i--){if(a[i]%2==0&&a[i-1]%2==0)b[i-1]=a[i-1]/2+a[i]/2;elseif(a[i]%2==0&&a[i-1]%2!=0)b[i-1]=(a[i-1]+1)/2+a[i]/2;elseb[i-1]=(a[i-1]+1)/2+(a[i]+1)/2;}if(a[0]%2==0&&a[9]%2==0)b[9]=a[9]/2+a[0]/2;elseif(a[0]%2==0&&a[9]%2!=0)b[9]=(a[9]+1)/2+a[0]/2;elseb[9]=(a[9]+1)/2+(a[0]+1)/2;for(i=0;i10;i++)a[i]=b[i];for(i=0;i9;i++){if(a[i]==a[i+1])continue;elsei=11;}if(i==9){printf(需要调整%d次\n,j);printf(每个人各有%d块糖\n,a[0]);break;}}}5.#includestdio.hmain(){intn,m,k,a[2][10],i=0;printf(请输入第一个数字:\n);for(n=0;n10;n++){scanf(%d,&a[0][n]);getchar();}printf(请输入第二个数字:\n);for(m=0;m10;m++){scanf(%d,&a[1][m]);getchar();}for(k=0;k10;k++){if(a[0][k]a[1][k]){printf(第一个数字较大.\n);break;}elseif(a[0][k]a[1][k]){printf(第二个数字较大.\n);break;}elseif(a[0][k]=a[1][k])i++;}if(i==9)printf(两数字相等.\n);}6.#includestdio.hvoidmain(){intsum=0,a[5][5],i,j;printf(请输入5行5列矩阵数字:\n);for(i=0;i5;i++){for(j=0;j5;j++){scanf(%d,&a[i][j]);}}for(i=0;i5;i++){sum+=a[0][i];}for(i=0;i5;i++){sum+=a[i][0];}for(i=0;i5;i++){sum+=a[4][i];}for(i=0;i5;i++){sum+=a[i][4];}sum=sum-a[0][0]-a[0][4]-a[4][0]-a[4][4];printf(最外圈元素之和为%d\n,sum);}7.#includestdio.h#includestdlib.h#defineN3main(){inta[N][N],i,j,k=0,score=0;srand(time(0));while(getchar()==121){i=getchar();for(i=0;iN;i++){for(j=0;jN;j++){a[i][j]=rand()%3;if(a[i][j]==0)printf(\1);elseif(a[i][j]==1)printf(*);elseprintf(#);}printf(\n);}{for(i=0;iN;i++){if(a[i][0]==a[i][1]&&a[i][1]==a[i][2])score++;if(a[0][i]==a[1][i]&&a[1][i]==a[2][i])score++;}if(a[0][0]==a[1][1]&&a[1][1]==a[2][2])score++;if(a[0][2]==a[1][1]&&a[1][1]==a[2][0])score++;}if(k==2){printf(你的得分是:%d.\n,score);break;}elsek++;}}8.附加题:#includestdio.h#includestring.hmain(){chara[100],b[100];charstr1[100],str2[100];scanf(%s%s,str1,str2);strcpy(a,strlen(str1)strlen(str2)?str1:str2);strcpy(b,strlen(str1)strlen(str2)?str1:str2);printf(a=%s\n,a);printf(b=%s\n,b);}附加2:#includestdio.h#defineN100main(){inta[N][N]={0},b,c,i,j;printf(请输入3到39间的奇数:\n);scanf(%d,&c);if(0c39&&c%2==1){b=c/2;for(i=0;ic;i++){for(j=0;jc;j++){if(i+j==b)a[i][j]=1;if(i-j==b)a[i][j]=1;if(j-i==b)a[i][j]=1;if(i+j==b*3)a[i][j]=1;}}for(i=0;ic;i++){for(j=0;jc;j++){printf(%d,a[i][j]);}printf(\n);}}elseprintf(错误输入,请输入3到39间的奇数。\n);}
本文标题:高级语言程序设计实验5-数组(完美运行版)
链接地址:https://www.777doc.com/doc-7339060 .html