数组程序设计(一)

实验四  数组程序设计(一)

一.实验目的

1. 掌握程序中数组的基本操作方法;

2. 掌握一维、二维数组的程序设计。

二.实验环境

1. 硬件:PII以上计算机;

2. 软件:Windows、Visual C++ 6.0;

3. 其它:一张软盘或者U盘等可移动的存储设备。

三.实验内容

练习1.从键盘读入10个数并存储至数组a中,然后再输入一个数x,要求输出数组a中所有大于x值的元素及其总个数。

运行结果示例:

练习2.已有一个排好序的数组(共10个数,从键盘读入),再输入一个数,要求按次序规律将它插入到数组中并输出结果。

运行结果示例:

练习3.随机生成一个包含10个元素的数组a,再输入一个数x,要求将数组a中所有大于x值的元素存放到一个新的数组b中并输出结果。

运行结果示例:

练习4.从键盘输入5名学生3门课程的成绩,然后将每门成绩的最高分和最低分输出。

要求:此题应使用二维数组

运行结果示例:

练习5.N只猴子要选大王,选举方法是:所有猴子按1、2、…、n编号围坐成一个圆圈,从第1号开始按照1、2、…、m报数,凡报到m号的猴子退出圈外,如此循环报数,指导圈内剩下最后一只猴子,则这只猴子就是大王。编写一个程序实现上述过程,n和m由键盘输入。

提 示:此题的算法和技巧可参考“Eratoshenes筛法求1-100之间的素数”一题。

*练习6.已有两个数组a和b都是按由小到大顺序排列的有序数组(其中数组a有M个数,数组b有N个数),编写程序,将a、b两个数组合并后送入数组c,并使c也按由小到大排列。

要求:将数组元素的个数值定义为符号常量,例如:# define  M  7

运行结果示例:

 

 

 

练习1

#include"iostream.h"

void main()

{

       inta[10],i,j,x,num=0;

       cout<<"输入数组10个元素的值:"<<endl;

       for(i=0;i<10;i++)

       cin>>a[i];

       cout<<"输入数值: ";

       cin>>x;

       cout<<"大于"<<x<<"的数包括";

       for(j=1;j<10;j++)

       if(a[j]>x)

       {num=num+1;

   cout<<a[j]<<";";}

       cout<<"共"<<num<<"个元素"<<endl;

}

 

练习2

#include"iostream.h"

void main()

{

int a[10],i,j,x;

cout<<"输入数组10个元素的值:"<<endl;

for(i=0;i<10;i++)

{cin>>a[i];

cout<<a[i]<<" ";}

cout<<endl;

cout<<"输入要插入数据的值: ";

cin>>x;

if(x>a[9])

a[10]=x;

else

{for(i=0;i<10;i++)

if(a[i]>x)

{for(j=9;j>=i;j--)

a[j+1]=a[j];

a[i]=x;

break;

}

}

cout<<"结果:";

for(i=0;i<11;i++)

cout<<a[i]<<" ";

cout<<endl;

}

 

练习3

#include"iostream.h"

#include"stdlib.h"

void main()

{

int a[10],b[10],i,j,x,k=0,num=0;

cout<<"原数组为:";

for(i=0;i<10;i++)

{a[i]=rand()%100;cout<<a[i]<<"";}

cout<<endl;

cout<<"再输入一个数据:";

cin>>x;

for(j=0;j<10;j++)

if(a[j]>x)

num=num+1;

cout<<"共筛选出"<<num<<"个元素"<<endl;

for(j=0;j<num;++j)

if(a[j]>x)

{

b[k]=a[j];

k++;

}

cout<<"新数组为:"<<b[k]<<"";

}

 

 

练习3

#include"iostream.h"

void main()

{

       inta[10],b[10],n=0,i,j=0,x;

       cout<<"firstarray:"<<endl;

       for(i=0;i<10;i++)

              cin>>a[i];

       cout<<"inputx:";

       cin>>x;

       for(i=0;i<10;i++)

              if(a[i]>x)

              {

                     b[j]=a[i];

                     j++;

                     n++;

              }

              cout<<"pickout numbers have"<<<<" "<<n<<endl;

              cout<<"thenumbers including:";

              for(j=0;j<n;j++)

                     cout<<b[j]<<"";

              cout<<endl;

}

 

练习4

#include"iostream.h"

void main()

{

       int a[5][3],i=0,j,m,n;

       cout<<"输入学生成绩:"<<endl;

       for(i=0;i<5;i++)

       {

              for(j=0;j<3;j++)

                     cin>>a[i][j];

              cout<<endl;

       }

       cout<<"成绩汇总输出:"<<endl;

       cout<<""<<"最高分"<<""<<"最低分"<<endl;

       for(j=0;j<3;j++)

       {m=a[0][j];

       n=a[0][j];

              for(i=1;i<5;i++)

              {

                     if(m<a[i][j])m=a[i][j];

                     if(n>a[i][j])n=a[i][j];

              }

              cout<<j+1<<"  "<<m<<"  "<<n<<endl;

       }

}

 

 

练习6

#define m 7

#define n 5

#include<iostream.h>

void main()

{

       inta[m],b[n],c[m+n],i,j,t,q=m;

       cout<<"input arraya"<<"("<<m<<"个元数"<<"):";

       for(i=0;i<m;i++)

       {

              cin>>a[i];

              c[i]=a[i];

       }

       cout<<endl<<"inputarray b"<<"("<<n<<"个元数"<<"):";

       for(t=0;t<n;t++)

              cin>>b[t];

       cout<<"outputarray c:";

       for(t=0;t<n;t++)

              for(i=0;i<q;i++)

                     if(b[t]<c[i])

                     {

                            for(j=q;j>=i;j--)

                                   c[j+1]=c[j];

                            c[i]=b[t];q++;

                            break;

                     }

                     else c[q]=b[t];

                     for(i=0;i<m+n;i++)

                            cout<<c[i]<<"";

                     cout<<endl;

}

 

 

 

 

1<<

#include<iostream.h>

void main()

{

    int a[10],i,x,n=0;

    cout<<"please input 10numbers:"<<endl;

    for(i=0;i<10;i++)cin>>a[i];

    cout<<"please input x:";

    cin>>x;

    cout<<"the numbers large than xincluding:";

    for(i=0;i<10;i++)

        if(a[i]>x)

        {

            cout<<a[i]<<",";

            n++;

        }

        cout<<"allhave"<<n<<""<<"numbers"<<endl;

}

2<<

#include<iostream.h>

void main()

{

    int a[11],i,j,x;

    cout<<"输入数组10元数:"<<endl;

    for(i=0;i<10;i++)

        cin>>a[i];

    cout<<"要插入的值:";

    cin>>x;

    cout<<"结果:"<<endl;

    for(i=0;i<10;i++)

        if(a[i]>x)

        {

            for(j=9;j>=i;j--)

                a[j+1]=a[j];

            a[i]=x;break;

        }

        for(i=0;i<11;i++)

            cout<<a[i]<<"";

        cout<<endl;

}

3《《

#include<iostream.h>

void main()

{

    int a[10],b[10],n=0,i,j=0,x;

    cout<<"firstarray:"<<endl;

    for(i=0;i<10;i++)

        cin>>a[i];

    cout<<"input x:";

    cin>>x;

    for(i=0;i<10;i++)

        if(a[i]>x)

        {

            b[j]=a[i];

            j++;

            n++;

        }

        cout<<"pick out numbershave"<<<<" "<<n<<endl;

        cout<<"the numbersincluding:";

        for(j=0;j<n;j++)

            cout<<b[j]<<"";

        cout<<endl;

}

 

4《《

#include<iostream.h>

void main()

{

       inta[5][3],i=0,j,m,n;

       cout<<"输入学生成绩:"<<endl;

       for(i=0;i<5;i++)

       {

              for(j=0;j<3;j++)

                     cin>>a[i][j];

              cout<<endl;

       }

       cout<<"成绩汇总输出:"<<endl;

       cout<<""<<"最高分"<<" "<<"最低分"<<endl;

       for(j=0;j<3;j++)

       {m=a[0][j];

       n=a[0][j];

              for(i=1;i<5;i++)

              {

                     if(m<a[i][j])m=a[i][j];

                     if(n>a[i][j])n=a[i][j];

              }

              cout<<j+1<<"  "<<m<<"  "<<n<<endl;

       }

}

6《《

#define m 7

#define n 5

#include<iostream.h>

void main()

{

       inta[m],b[n],c[m+n],i,j,t,q=m;

       cout<<"inputarray a"<<"("<<m<<"个元数"<<"):";

       for(i=0;i<m;i++)

       {

              cin>>a[i];

              c[i]=a[i];

       }

       cout<<endl<<"inputarray b"<<"("<<n<<"个元数"<<"):";

       for(t=0;t<n;t++)

              cin>>b[t];

       cout<<"outputarray c:";

       for(t=0;t<n;t++)

              for(i=0;i<q;i++)

                     if(b[t]<c[i])

                     {

                            for(j=q;j>=i;j--)

                                   c[j+1]=c[j];

                            c[i]=b[t];q++;

                            break;

                     }

                     elsec[q]=b[t];

                     for(i=0;i<m+n;i++)

                            cout<<c[i]<<"";

                     cout<<endl;

}

              5<<

#include<iostream.h>

void main()

{

       intn,m,a[n],b[n],i,j,t=0,w;

       cout<<"pleaseinput n and m:";

       cin>>n>>m;

       for(i=1;i<=n;i++)

              cin>>a[i];

       for(i=1;i<=n;i++)

       {

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值