在数组中找到最大的倍数,反之亦然
Find in array the biggest multiple and write it vica versa
我被赋予了一项任务:
给出了一个由五个数字组成的数组
第一个-查找所有四的倍数
第二个-找到其中最大的一个,反之亦然
我已经写了一个代码。
#include <iostream>
#include <iomanip>
using namespace std;
#define size 12
int main()
{
int new_max=0;
int a1, a2;
int i=0, j=0;
int a, b, c=0;
int u[size]={38,12,36,45,16,46,14,19,54,53,95, 98};
int max=0;
cout<<"Array: n";
for(i=0; i<size; i++)
cout<<u[i]<<" n";
for (int i=0; i<size; i++)
{
if (u[i]%4==0)
{
cout<<"array "<<u[i]<<" n";
for (int j=0; j<size; j++)
{
if(max<u[i])
{
max=u[i];
}}}}
cout<<"max "<<max<<endl;
while(max > 0)
{
new_max = new_max*10 + ( max % 10);
max = max/10;
}
cout << new_max << endl;
return 0;
}
#include <iostream>
#include <algorithm>
#include <string>
#include <array>
int main() {
std::array<int, 5> input = { 36, 12, 38, 45, 16 };
auto validRangeEnd = std::remove_if(std::begin(input),
std::end(input),
[](int i){ return i % 4 != 0; });
// Now std::begin(input) -> validRangeEnd contain the ones divisible by 4
auto max = std::max_element(std::begin(input), validRangeEnd);
// Max contains the max number from the filtered range
auto stringMax = std::to_string(*max);
std::reverse(std::begin(stringMax), std::end(stringMax));
// Reverse reverses the max number
std::cout << stringMax;
}
决不是最佳的,但我觉得它对教育有用:)
(remove_if和max_elements都会通过,所以我会重新检查一些我不需要的东西,但无论如何,这是问题的一个很好的算法表示。此外,没有循环,看!:)
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 将数组的地址分配给变量并删除
- 从C++本机插件更新Vector3数组
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 数组索引的值没有增加
- 将对象数组的引用传递给函数
- 为char数组调整zlib-zpipe
- 2D数组来自文本输入,中间有空格
- std::向量与传递值的动态数组
- 在c++中用vector填充一个简单的动态数组
- 将 char[] 数组转换为字节,然后将字节转换为 int,反之亦然
- 将字节数组 (uint8_t) 转换为单词数组 (uint16_t),反之亦然
- std::memcpy结构,具有TriviallyCopyable类型T的紧密封装成员到T的数组,反之亦然
- 循环数组 - 从最后一个跳到第一个,反之亦然
- 将数组分配给多维数组,反之亦然
- 在数组中找到最大的倍数,反之亦然
- C++-独立于平台的函数,用于将字节数组转换为值,反之亦然
- 在无符号字符数组中读取充满字符串(用换行符分隔)的文件(反之亦然)的最快方法是什么?
- 将多维数组复制到向量,反之亦然