程序设计基础2020实验06-数组1

发布于 2021-01-17 20:31

  • 代码仅供参考,有不足之处请指出。

  • 01:整数序列的元素最大跨度值

  • 给定一个长度为n的非负整数序列,请计算序列的最大跨度值(最大跨度值 = 最大值减去最小值)。

  • 输入

  • 一共2行,第一行为序列的个数n(1 <= n <= 1000),第二行为序列的n个不超过1000的非负整数,整数之间以一个空格分隔。

  • 输出

  • 输出一行,表示序列的最大跨度值。

  • 样例输入

  • 6
    3 0 8 7 5 9
  • 样例输出

  • 9
    #include <iostream>#include <stdio.h>#include <iomanip>#include <cmath>#include <string>using namespace std;int a[1010]; int main(){  int n,z=0,x=10000,ans=0;  cin>>n;  for(int i=1;i<=n;i++)  {    cin>>a[i];    if(z<=a[i])    {      z=a[i];    }    if(x>a[i])    x=a[i];    ans=z-x;  }  cout<<ans<<endl;  return 0;}
  • 02:在数组中查找元素

  • 给定一个整型数组和一个整数,判定这个整数是否在该数组中存在,若存在,则输出Find,否则输出Not Find。数组的元素个数不超过100。

  • 输入

  • 共三行,第一行为数组中元素的个数n,第二行为n个整数,第三行是待找的一个整数

  • 输出

  • 一行,如果待找的整数在数组中则输出Find,否则输出Not Find。

  • 样例输入

  • 5
    3 1 2 7 8
    7
  • 样例输出

  • Find
    #include <iostream>#include <stdio.h>#include <iomanip>#include <cmath>#include <string>using namespace std;int a[110];int main(){  int n,b,c;  cin>>n;  for(int i=1;i<=n;i++)  {    cin>>a[i];  }  cin>>b;  for(int i=1;i<=n;i++)    if(a[i]==b)    c=a[i];    if(c==b)      cout<<"Find"<<endl;    else     cout<<"Not Find"<<endl;    return 0;}
  • 03:数组去重排序

  • 小吉是银行的会计师,在处理银行帐目的时候,遇到了一些问题。有一系列整数,其中含有重复的整数,需要去掉重复后,排序输出,你能帮助小吉解决问题吗?

  • 输入

  • 输入数据共2行,第一行输入测试数据个数n,第二行输入这n个整数,整数之间可能有重复,整数之间可能有若干个空格。
    n <= 105,所有的整数不超过104

  • 输出

  • 输出为1行,是这n个数去重后从小到大的排序。

  • 样例输入

  • 3
    4 4 2
  • 样例输出

  • 2 4
    #include <iostream>#include<stdio.h>#include<cstring>#include<cmath>#include<algorithm>using namespace std;int a[100010]; int qca(int a[],int n){    cout << a[0];  for (int i = 1; i<n; i++)  {    if (a[i] != a[i - 1])      cout << " " << a[i];  }}int main(){  int n;  cin>>n;  for(int i=0;i<n;i++)  {    cin>>a[i];      }  sort(a,a+n);  qca(a,n);  return 0;}
  • 04:开灯问题

  • 有n盏灯,编号为1~n。第1个人把所有灯打开,第2个人按下所有编号为2的倍数的开关(这些灯将被关掉),第3个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),依此类推。一共有k个人,问最后有哪些灯开着?

  • 输入

  • n和k(k<=n<=1000)

  • 输出

  • 开着的灯编号。

  • 样例输入

  • 7 3
  • 样例输出

  • 1 5 6 7
    #include <iostream>#include<stdio.h>#include<cstring>#include<cmath>using namespace std;int a[10010];int main(){  int n,k;  cin>>n>>k;  for(int i=2;i<=k;i++)  {    for(int j=1;j<=n;j++)    {      if(j%i==0)      a[j]+=1;    }  }  for(int i=1;i<=n;i++)  {    if(a[i]%2==0)    printf("%d ",i);  }  return 0;}

网址:http://qdacm.openjudge.cn/

本文来自网络或网友投稿,如有侵犯您的权益,请发邮件至:aisoutu@outlook.com 我们将第一时间删除。

相关素材