《高级语言程序设计》实验报告实验项目5数组.docx
《《高级语言程序设计》实验报告实验项目5数组.docx》由会员分享,可在线阅读,更多相关《《高级语言程序设计》实验报告实验项目5数组.docx(10页珍藏版)》请在冰豆网上搜索。
![《高级语言程序设计》实验报告实验项目5数组.docx](https://file1.bdocx.com/fileroot1/2022-11/19/3b73764a-1705-477c-9418-acac5f9668b2/3b73764a-1705-477c-9418-acac5f9668b21.gif)
《高级语言程序设计》实验报告实验项目5数组
《高级语言程序设计》实验报告
实验序号:
5 实验项目:
数组
学 号
25
姓 名
林燕萍
专业、班级
实验地点
指导教师
实验时间
一、实验目的及要求
1、掌握一维数组和二维数组的定义、赋值、使用和输入输出方法;
2、掌握字符数组和字符串的使用;
二、实验设备(环境)及要求
使用VisualC++6.0;windows系列操作系统的环境。
三、实验内容与步骤
1.用筛法求1~1000之间的素数。
eratosthenes筛法:
1)利用数组存放这1000个数;
2)挖掉第一个数1(令该数=0);
3)2没被挖掉,挖掉后面所有2的倍数;
4)3没被挖掉,挖掉后面所有3的倍数;
5)4被挖掉,不执行任何操作;
6)5没被挖掉,挖掉后面所有5的倍数;
7)····直到最后一个数;
8)剩下的非0数就是素数。
运行结构截图:
2.编写程序输入一个字符串,删除字符串中的所有数字字符后输出此字符串。
【算法提示】
(1)定义一个一维字符数组;
(2)输入一串测试字符;
(3)依次判断数组中字符是否为数字(即>‘0’且<‘9’);
(4)若是则将后面所有字符依次往前移一位;
(5)输出整个字符串。
运行结构截图:
3.输入若干个整数存放在一维数组中,根据此数组构造两个数组a和b,要求a中存放数组x中所有的正数,b中存放数组中所有的负数,0舍弃,最后分别输出数组a和b。
运行结构截图:
2
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。
编写程序比较两行元素构成的整数大小。
(规则:
从高位起逐个比对应位数,若每位均相等,则两数相等;若遇到第一个不相等的数字,则数字大者为大)
例如:
1
2
3
4
5
0
7
0
0
0
1
2
3
7
4
2
6
0
0
0
运行结构截图:
6.输入一个5行5列的矩阵,计算该矩阵最外圈元素之和。
运行结构截图:
7.【附加题】老虎机:
假设有3*3个方格,编写程序,在程序运行后,在3*3个方格内随机显示符号三种符号“、#、*”得分规则是在一条直线或斜线上有三个相同的图案则得一分,按y继续玩,每人玩三次,统计总得分。
(其中可以用’\1’输出)
运行结构截图:
8.【附加题】任意输入两个字符串,分别存放在a、b两个字符数组中。
然后将较短的字符串放在a数组中,较长的字符串放在b数组中,并输出。
附加2:
输入奇数n,输出nXn方阵。
如n=5,输出:
00100
01010
10001
01010
00100
运行结构截图:
9.【附加题】从键盘上输入一些字符串(以”$$$”为结束标志)。
然后统计每个字符串的出现次数。
最后按输入顺序输出各个单词及其对应的出现次数。
如输入:
GirlboyGirlStudentLinStudent$$$
则输出:
GirlboyStudentLin
2121
运行结构截图:
四、分析与讨论
对上机实践结果进行分析,上机的心得体会。
五、教师评语
签名:
日期:
成绩
附源程序清单:
1.#include
intmain()
{
intNum[100];
inti,j;
Num[0]=0;
for(i=2;i<100;i++)
{
Num[i]=1;
}
for(i=2;i<100;i++)
{
if(Num[i]==1)
{
/*
2的倍数全部赋为0
3的倍数全部赋为0
4为0,跳过
5的倍数全部赋为0
6为0跳过
7的倍数全部赋为0
以此类推
*/
for(j=i;j*i<100;j++)
{
Num[i*j]=0;
}
}
}
for(i=2;i<100;i++)
{
if(Num[i]==1)
{
printf("%d\n",i);
}
}
return0;
}
2.#include
intmain()
{
inti,j=0;
charch[1000];
scanf("%s",&ch);
for(i=0;ch[i];i++)
{
if(!
(ch[i]>='0'&&ch[i]<='9'))
{
ch[j++]=ch[i];
}
}
ch[j]=0;//在j处添加字符串结尾
printf("%s\n",ch);
Return0;
3.#include
intmain()
{
inti,m=0,n=0,num;
intIntBegin[1000],Inta[1000],Intb[1000];
printf("请输入你要输入的数个数:
");
scanf("%d",&num);
for(i=0;i{
scanf("%d",&IntBegin[i]);
}
for(i=0;i{
if(IntBegin[i]>0)
{
Inta[m++]=IntBegin[i];
}
elseif(IntBegin[i]<0)
{
Intb[n++]=IntBegin[i];
}
}
printf("a数组的成员有%d个,分别为:
",m);
for(i=0;i{
printf("%d,",Inta[i]);
}
printf("\nb数组的成员有%d个,分别为:
",n);
for(i=0;i{
printf("%d,",Intb[i]);
}
printf("\n");
return0;
}
4.#include
voidmain()
{
inta[11]={0,10,2,8,22,16,4,10,6,14,20};
intterm,i,n=0,m;
while(a[1]!
=a[10]||a[1]!
=a[2]||a[1]!
=a[3]||a[1]!
=a[3]||a[1]!
=a[5]||a[1]!
=a[6]||a[1]!
=a[7]||a[1]!
=a[8]||a[1]!
=a[9])
{
n=n+1;
term=(a[1]+a[10])/2;
for(i=2;i<=10;i++)
{
a[i]=(a[i-1]+a[i])/2;
if(a[i+1]%2==1)
{
a[i+1]=a[i+1]+1;
}
}
a[1]=term;
}
printf("n=%d\n",n);
printf("a[1]=%d\n",a[1]);
}
5.#include
intmain()
{
inta[2][10]={1,2,3,4,5,0,7,0,0,1,2,3,7,4,2,6,0,0};
inti;
for(i=0;i<10;i++)
{
if(a[0][i]>a[1][i])
{
printf("第一个数大\n");
return0;
}
elseif(a[0][i]{
printf("第二个数大\n");
return0;
}
}
return0;
}
6.#include
intmain()
{
inta[5][5],i,j,sum=0;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
scanf("%d",&a[i][j]);
}
}
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if((i==0||j==4||i==4||j==0))
{
sum+=a[i][j];
}
}
}
printf("%d\n",sum);
return0;
}
7.
8.
9.