ps:本贴为小白学习日记,基础到地下室,大神勿喷
本次所刷的题目均来自网络,本人给出关于题目自己的解法。
本期的题目来自这位大神,他的c++基础小题库大家感兴趣的可以传送过去。
1 逆序输出
从键盘输入n个整数(n<100),存放在一个一维数组中,逆序输出能被3整除 的元素,并逆序输出数组下标为3的倍数的元素。
输入格式:第一个整数为个数n,后续为n个整数
输出格式:第一行能被3整除的元素,第二行为下标为3的倍数的元素,各个数值之间用空格分隔。
Sample Input
10 2 7 9 10 5 4 3 6 8 20
Sample Output
6 3 9
20 3 10 2
#include<iostream>
using namespace std;
int main()
{
int n;//定义数组个数
cin>>n;
const int max=100;
if(n<=100)
{
int shuzu[n];
for(int i=0;i<n;i++)
{
cin>>shuzu[i];
}
for(int i=n;i>0;i--)//第一行输出
{
if(shuzu[i]%3==0)
{
cout<<shuzu[i]<<" ";
}
}cout<<endl;
for(int i=n-1;i>=0;i--)//第二行输出
{
if(i%3==0)
{
cout<<shuzu[i]<<" ";
}
}cout<<endl;
}
else{cout<<"数组大小超出本体界限";}
}
2.逆序存储
从键盘输入n(n<100)个整数,存放在一个一维数组a中,将它们逆序存放在另一个整型数组b中,并按b数组中下标从小到大的顺序输出下标为3的倍数的数组元素。
输入格式:第一个数为数组中元素个数n,之后为n个元素。
输出格式:下标为3的倍数的元素,各个数值之间用空格分隔。
Sample Input
10 2 7 9 10 5 4 3 6 8 20
Sample Output
20 3 10 2
#include <iostream>
using namespace std;
int main()
{
const int max=100;
int n;//定义数组长度
cin>>n;
int a[n],b[n];
if(n<=100)
{
for(int i=0;i<n;i++)//输入数组并逆序存储
{
cin>>a[i];
b[n-i-1]=a[i];
}
for(int i=0;i<n;i++)
{
if(i%3==0)
{
cout<<b[i]<<" ";
}
}
}
return 0;
}
3.斐波那契数列
输入一个正整数n(n<100),将斐波那契数列的前n项保存到一维数组中,并输出数组中对3取余为2的元素。
斐波那契数列为:0 1 1 2 3 5 8 13 21 34 55……,起始项为第0项。
(斐波那契数列:从第三项开始,每一项等于前两项的和。)
Sample Input
10
Sample Output
2 5 8
#include <iostream>
using namespace std;
int main()
{
const int max=100;
int n=0;
int a[max];
cin>>n;
a[0]=0;a[1]=1;
for(int i=2;i<n;i++)
{
a[i]=a[i-1]+a[i-2];
}
for(int i=0;i<n;i++)
{
if(a[i]%3==2)
{
cout<<a[i]<<" ";
}
}
return 0;
}
4.指定位置插入
从键盘输入任意个整数(以0结束,假设个数不超过100个),从0下标开始依次存放在一维数组中,再输入插入位置pos(0<=pos<=n)及被插入的元素x,将x插入到数组的pos下标处pos。输出插入后数组中的所有元素。
Sample Input
8 2 17 9 11 5 4 3 6 21 20 0
8 100
Sample Output
8 2 17 9 11 5 4 3 100 6 21 20
ps :由于输入一系列不知道个数的数并把它存入数组我暂时还没有吃透,所以此题我暂时做不出来,留待以后解决。