《高级语言程序设计》实验报告实验项目5数组Word文档格式.docx
《《高级语言程序设计》实验报告实验项目5数组Word文档格式.docx》由会员分享,可在线阅读,更多相关《《高级语言程序设计》实验报告实验项目5数组Word文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
![《高级语言程序设计》实验报告实验项目5数组Word文档格式.docx](https://file1.bdocx.com/fileroot1/2022-11/19/3b73764a-1705-477c-9418-acac5f9668b2/3b73764a-1705-477c-9418-acac5f9668b21.gif)
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
3
4
5
7
6
6.输入一个5行5列的矩阵,计算该矩阵最外圈元素之和。
7.【附加题】老虎机:
假设有3*3个方格,编写程序,在程序运行后,在3*3个方格内随机显示符号三种符号“、#、*”得分规则是在一条直线或斜线上有三个相同的图案则得一分,按y继续玩,每人玩三次,统计总得分。
(其中可以用’\1’输出)
8.【附加题】任意输入两个字符串,分别存放在a、b两个字符数组中。
然后将较短的字符串放在a数组中,较长的字符串放在b数组中,并输出。
附加2:
输入奇数n,输出nXn方阵。
如n=5,输出:
00100
01010
10001
9.【附加题】从键盘上输入一些字符串(以”$$$”为结束标志)。
然后统计每个字符串的出现次数。
最后按输入顺序输出各个单词及其对应的出现次数。
如输入:
GirlboyGirlStudentLinStudent$$$
则输出:
GirlboyStudentLin
2121
四、分析与讨论
对上机实践结果进行分析,上机的心得体会。
五、教师评语
签名:
日期:
成绩
附源程序清单:
1.#include<
stdio.h>
intmain()
{
intNum[100];
inti,j;
Num[0]=0;
for(i=2;
i<
100;
i++)
{
Num[i]=1;
}
if(Num[i]==1)
{
/*
2的倍数全部赋为0
3的倍数全部赋为0
4为0,跳过
5的倍数全部赋为0
6为0跳过
7的倍数全部赋为0
以此类推
*/
for(j=i;
j*i<
j++)
{
Num[i*j]=0;
}
}
if(Num[i]==1)
{
printf("
%d\n"
i);
}
return0;
}
2.#include<
inti,j=0;
charch[1000];
scanf("
%s"
&
ch);
for(i=0;
ch[i];
if(!
(ch[i]>
='
0'
&
&
ch[i]<
9'
))
ch[j++]=ch[i];
ch[j]=0;
//在j处添加字符串结尾
printf("
%s\n"
ch);
Return0;
3.#include<
inti,m=0,n=0,num;
intIntBegin[1000],Inta[1000],Intb[1000];
请输入你要输入的数个数:
"
);
%d"
num);
num;
scanf("
IntBegin[i]);
if(IntBegin[i]>
0)
Inta[m++]=IntBegin[i];
elseif(IntBegin[i]<
Intb[n++]=IntBegin[i];
a数组的成员有%d个,分别为:
m);
m;
printf("
%d,"
Inta[i]);
\nb数组的成员有%d个,分别为:
n);
n;
Intb[i]);
\n"
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[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;
=10;
a[i]=(a[i-1]+a[i])/2;
if(a[i+1]%2==1)
a[i+1]=a[i+1]+1;
a[1]=term;
n=%d\n"
a[1]=%d\n"
a[1]);
5.#include<
inta[2][10]={1,2,3,4,5,0,7,0,0,1,2,3,7,4,2,6,0,0};
inti;
10;
if(a[0][i]>
a[1][i])
第一个数大\n"
return0;
elseif(a[0][i]<
第二个数大\n"
6.#include<
inta[5][5],i,j,sum=0;
5;
for(j=0;
j<
scanf("
a[i][j]);
if((i==0||j==4||i==4||j==0))
sum+=a[i][j];
sum);
7.
8.
9.