西南交大C++实验12docWord格式.docx
《西南交大C++实验12docWord格式.docx》由会员分享,可在线阅读,更多相关《西南交大C++实验12docWord格式.docx(7页珍藏版)》请在冰豆网上搜索。
2.统计一维整型数组中能被3整除的元素个数,并输出。
数组元素由键盘输入;
用指针方式访问数组。
3.学生成绩统计:
随机产生30名学生的成绩〔0~100之间的整数〕,存放于一维数组中;
输出学生成绩,每行10个数。
然后统计并输出90-100、80-80、70-79、60-69、小于60这五个分数段的学生人数。
程序运行结果类似于如下图:
4.编程将一维数组中保存的10个整数循环左移m位,m的值由键盘输入。
例如:
数组元素为:
8,5,13,21,3,2,6,7,12,10;
m的值为3,如此移动后的数组为:
21,3,2,6,7,12,10,8,5,13。
用指针方式访问数组,程序中只能使用一个数组。
5.有一组整数,其排列形式为:
8,5,13,15,3,11,6,7,22,10,且尾部的10和头部的8首尾相连,构成一个环形。
编程求出相邻的任意四个数之和,并输出。
然后找出相加之和最大的四个数,输出求和的结果以与这四个数。
程序运行结果类似于如下图,实验报告中的运行结果截图,不能与如下图中的数据一样。
三、实验结果〔源程序+注释〕
1.
#include<
iostream>
usingnamespacestd;
voidmain()
{
cout<
<
"
学号:
:
endl;
========================================="
intn,i=1;
int*pn=&
n;
doublex,sum,j;
double*px=&
x,*psum=&
sum;
请分别输入x和n的值:
cin>
>
*px>
*pn;
j=x;
*psum=0;
while(i<
=*pn)
{*psum=*psum+j;
i++;
j=j*x/i;
}
sum="
*psum<
}
2.
inta[100],n,j=0,*p;
请输入一维整型数组中的元素个数:
请输入一维整型数组中的元素:
for(p=a;
p<
a+n;
p++)
*p;
if(*p%3==0)
j=j+1;
该数组中能被3整除的元素个数为:
j<
3.
iomanip>
ctime>
inta[30],*q,i=0;
//a[30]用于存放30名学生的成绩
intc[5]={0};
//分别存放5个分数段的学生人数
int*pa=a,*pc=c;
//初值分别存放数组a和c的首地址
srand(time(NULL));
for(q=a;
q<
a+30;
q++)
*q=0+rand()%(100-0+1);
学生成绩为:
setw(6)<
*q;
i=i+1;
if(i%10==0)
switch(*q/10)
case10:
case9:
*(pc+4)=*(pc+4)+1;
break;
case8:
*(pc+3)=*(pc+3)+1;
case7:
*(pc+2)=*(pc+2)+1;
case6:
*(pc+1)=*(pc+1)+1;
default:
*pc=*pc+1;
学生成绩统计如下:
setw(10)<
分数段"
90~100"
80~89"
70~79"
60~69"
60以下"
人数"
*(pc+4)<
*(pc+3)<
*(pc+2)<
*(pc+1)<
*pc<
4.
#include<
voidmain()
{
inta[20],*p;
intm,i,t;
请输入m的值:
;
m;
循环左移"
m<
位前,数组元素为:
a+10;
for(i=0;
i<
i++)
p=a;
t=*p;
for(;
a+9;
*p=*(p+1);
*p=t;
数组循环左移"
位后的数组为:
*p<
"
5.
constintN=10;
inta[N]={8,5,13,15,3,11,6,7,22,10};
//用于存放10个整数;
intb[N]={0},i,j,max,pos,sum;
//用于存放a[i]与其后3个整数之和;
int*pa=a,*pb=b;
//初值分别存放数组a和b的首地址;
数组中的元素为:
N;
*(a+i);
sum=0;
for(j=i;
i+4;
j++)
if(j>
N-1)
sum+=*(a+j-N);
else
sum+=*(a+j);
*(b+i)=sum;
相邻4个数之和分别是:
max=*(b+0);
*(b+i);
if(*(b+i)>
max)
max=*(b+i);
pos=i;
最大的和值是:
max<
参与求和的4个数是:
for(i=pos;
pos+4;
if(i>
*(a+i-N);