程序设计基础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
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
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
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
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 我们将第一时间删除。
相关素材